Golang 可变参数(...)

Golang 可变参数(点点点)

可变参数: variadic parameter

在函数签名中使用

只能用在最后一个参数的类型前,表示这个类型的参数可以有任意个。实际传入函数中的是一个切片:

1
2
3
4
5
6
7
func sum(vals ...int) int {
total := 0
for _, val := range vals {
total += val
}
return total
}

传入函数参数时使用

如果需要传入这个函数的原始参数已经是切片了,则传入函数时在它的后面加上 ...

1
2
values := []int{1, 2, 3, 4}
fmt.Println(sum(values...)) // "10"

参考