توابع متغیر میتونن با هر تعداد آرگومانی فراخوانی بشن. برای مثال،fmt.Println
یک تابع متغیر رایج است.
package main import "fmt"
در اینجا یک تابع داریم که مقدار دلخواهی int
را به عنوان آرگومان دریافت میکند.
func sum(nums ...int) { fmt.Print(nums, " ") total := 0 for _, num := range nums { total += num } fmt.Println(total) } func main() {
توابع متغیر به طور معمول با آرگومان های تکی فراخوانی میشود.
sum(1, 2) sum(1, 2, 3)
اگر شما چندین آرگومان در یک برش دارید، میتونید اونها رو در یک تابع متغیر شبیه (...func(slice
اعمال کنید.
nums := []int{1, 2, 3, 4} sum(nums...) }
$ go run variadic-functions.go [1 2] 3 [1 2 3] 6 [1 2 3 4] 10
یکی دیگر از جنبه های کلیدی توابع در گو توانایی آنها در ایجاد بستار است، که در آینده آن را مورد بررسی قرار میدهیم.
<<چند بازگشتی مقادیر------------------------------------تابع بستار>>