在线文档 > Golang练习 > 变参函数
Golang中可变参数函数,在调用时可以传递任意数量的参数。 例如,fmt.Println
就是一个常见的变参函数。
package main
import "fmt"
// 这是一个函数,它将以任意数量的 int 类型作为参数。
func sum(nums ...int) {
fmt.Print(nums, " ")
total := 0
// 在函数内部,nums 的类型等效于 []int。
// 我们可以使用len(nums)、使用range等迭代它。
for _, num := range nums {
total += num
}
fmt.Println(total)
}
func main() {
// 可变参数函数可以像普通函数一样使用单个参数调用。
sum(1, 2)
sum(1, 2, 3)
//如果您已经有多个参数在一个slice中,则可以使用`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
接下来我们要看的是 Go 函数的另一个关键特性:闭包