在 go 语言中,可变参数函数是一种允许函数接受任意数量参数的语法机制。它通过在函数最后一个参数前加上 ... 来定义,表示该参数可以接收多个值(0 个或多个)。例如:func sum(nums ...int) 定义了一个可变参数函数,调用时如 sum(1, 2, 3) 或 sum() 都合法。传入的参数会被自动封装为一个切片,函数内部可通过遍历该切片来处理所有参数。定义时需注意:可变参数必须是函数的最后一个参数,且每个函数只能有一个可变参数。此外,调用时也可以传入一个切片并加 ... 来展开,如 sum(numbers...)。使用时需避免滥用,确保参数语义清晰,并可在函数内检查参数长度以确保至少传入一个参数。合理使用可变参数能提升接口灵活性,但应兼顾代码可读性。

在 Golang 中,
...

Go 的可变参数函数指的是:函数的最后一个参数前面加上
...

func sum(nums ...int) {
total := 0
for _, num := range nums {
total += num
}
fmt.Println("总和是:", total)
}这个函数就可以这样调用:
立即学习“go语言免费学习笔记(深入)”;
sum(1, 2, 3) sum(4, 5) sum()
调用时传入的参数会被自动封装成一个切片(slice),函数内部通过遍历这个切片来处理所有参数。

定义方式很简单,只需要在参数类型前加
...
示例:
func printInfo(name string, scores ...int) {
fmt.Println("姓名:", name)
fmt.Println("成绩:", scores)
}调用方式:
printInfo("小明", 80, 90, 85)
printInfo("小红")这种设计非常适合像“记录日志”、“打印信息”等需要灵活参数的场景。
你可以用多种方式来调用带有
...
直接传多个值:
sum(1, 2, 3, 4)
传一个切片,并在后面加 ...
numbers := []int{1, 2, 3, 4}
sum(numbers...)传空参数(因为可变参数允许 0 个值):
sum()
注意:如果你不加 ... 直接传切片会报错,因为 Go 不会自动帮你展开切片。
虽然
...
比如下面这段代码可以防止用户传空参数:
func mustHaveAtLeastOne(num int, rest ...int) {
// 处理逻辑
}或者你在函数内部判断:
if len(nums) == 0 {
fmt.Println("请至少输入一个数字")
return
}基本上就这些。合理使用
...
以上就是Golang的...参数如何使用 讲解可变参数函数的定义与调用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号