可变参数的原理是:将传入的一个或多个参数转换为一个新的切片。
比如:
func add(nums ...int) int {
var sum int
for _, val := range nums{
sum += val
}
return sum
}
func main(){
sum := add(1,2,3,4,5)
fmt.Println(sum)
}
如果想直接传入一个切片当作参数(而不是将这个切片再转换为一个新的切片),可以在实参的后面加上...,像这样:
func main(){
nums := []int{1,2,3,4,5}
sum := add(nums...)
fmt.Println(sum)
}