可变参数的函数可以用任何数量的参数来调用。 例如,fmt.Println()
就是一个常见的可变函数。
所有的示例代码,都放在
F:\worksp\golang
目录下。安装Go编程环境请参考:http://www.yiibai.com/go/go_environment.html
这里有一个函数将任意数量的int
作为参数。可变参数的函数可以通过单独的参数以通常的方式调用。
如果已经在一个切片中有多个参数,使用func(slice ...)
函数将它们应用到一个可变函数。
Go中的函数的另一个关键方面是它们形成闭包的能力,我们将在下面讨论和学习。
variadic-functions.go
的完整代码如下所示 -
package main
import "fmt"
// Here's a function that will take an arbitrary number
// of `ints` as arguments.
func sum(nums ...int) {
fmt.Print(nums, " ")
total := 0
for _, num := range nums {
total += num
}
fmt.Println(total)
}
func main() {
// Variadic functions can be called in the usual way
// with individual arguments.
sum(1, 2)
sum(1, 2, 3)
// If you already have multiple args in a slice,
// apply them to a variadic function using
// `func(slice...)` like this.
nums := []int{1, 2, 3, 4}
sum(nums...)
}
执行上面代码,将得到以下输出结果 -
F:\worksp\golang>go run variadic-functions.go
[1 2] 3
[1 2 3] 6
[1 2 3 4] 10