省略号(…)是Golang中一个特殊的语法符号,通常用于函数或方法的参数列表中。在使用省略号的情况下,函数或方法可以接收不定数量的参数,这使得编写更加通用和灵活的代码变得更加容易。
省略号的基本用法
sum
func sum(nums ...int) int {
total := 0
for _, num := range nums {
total += num
}
return total
}
func main() {
fmt.Println(sum(1, 2, 3, 4)) // 输出10,即1+2+3+4的结果
}
numsrange
在函数调用中,我们可以传递不定数量的参数,用逗号分隔即可。在上面的例子中,我们传递了4个参数(分别为1、2、3、4),最终函数返回它们的和。
省略号与其他参数的组合使用
省略号可以与其他类型的参数组合使用,包括有名参数和指针类型参数。下面的例子展示了这种情况下的函数定义和调用方法:
func foo(x int, y string, z ...interface{}) {
fmt.Println(x, y)
fmt.Println(z...)
}
func main() {
foo(1, "hello", 2, "world", 3.14)
}
xyzxy...
在函数调用中,我们先传递了两个参数(分别为1和”hello”),接着使用逗号分隔传递了三个不定参数(分别为2、”world”和3.14)。最终函数将打印出1和”hello”作为有名参数的值,以及2、”world”和3.14作为不定参数的值。
另外,在函数中可以同时声明多个至少有一个不定参数的函数:
func bar(x int, y ...int, z bool) {
// do something
}
yfunc main() {
nums := []int{1, 2, 3}
fmt.Println(sum(nums...))
}