golang中可以使用任意数量的参数调用可变参数函数。
fmt.Println就是一个常见的可变参数函数。
package main
import "fmt"
// 此函数接收任意数量的int值作为参数
func sum(nums ...int) {
fmt.Println(nums, " ")
total := 0
// 此函数中,nums类型等同于[]int类型。因此可以使用range迭代nums
for _, num := range nums {
total += num
}
fmt.Println(total)
}
func main() {
// 调用可变参数通常可以使用分开的参数
sum(1, 2)
// print
// [1 2]
// 3
sum(1, 2, 3)
// print
// [1 2 3]
// 6
// 如果在切片slice中有多个参数,可以用到可变参数中。func(slice...)
nums := []int{1, 2, 3, 4}
sum(nums...)
// print
// [1 2 3 4]
// 10
}