可变参数函数支持任意数量的传入参数。例如: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。