Golang 第五章 7.可变参数函数
在 Go 中,函数可以接收 可变数量的参数,称为可变参数函数。
基本语法
func greet(prefix string, names ...string) {
for _, name := range names {
fmt.Println(prefix, name)
}
}
greet("Hello", "Alice", "Bob") nums ...int → 表示函数可以接收 0 个或多个 int 参数
函数内部 nums 是一个 切片([]int)
调用可变参数函数
fmt.Println(sum()) // 0
fmt.Println(sum(1, 2, 3)) // 6
fmt.Println(sum(5, 10, 15)) // 30将切片传入可变参数函数
如果已有一个切片,可以使用 ... 展开:
nums := []int{1, 2, 3}
fmt.Println(sum(nums...)) // 6nums... → 展开切片,将每个元素作为单独参数传递
可变参数函数与其他参数组合
可变参数必须 放在参数列表最后:
func greet(prefix string, names ...string) {
for _, name := range names {
fmt.Println(prefix, name)
}
}
greet("Hello", "Alice", "Bob") 输出:
Hello Alice
Hello Bob可变参数函数内部类型
内部的可变参数被当作 切片类型
可以用切片方法操作:
func printAll(values ...string) {
fmt.Println(values) // 输出切片
fmt.Println(len(values)) // 元素数量
}使用场景
求和、求平均值
日志函数
格式化输出(类似 fmt.Println)
批量操作函数



评论