可变参数函数支持任意数量的传入参数。例如: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,3,4} sum(nums...) }
输出结果为:
$ go run variadic-functions.go [1 2] 3 [1 2 3] 6 [1 2 3 4] 10
在Go语言中函数另外一种重要的特性就是构建函数闭包。我们将在下一章节进行讲解。
下一个例子:Go by Example: Closures。