10.可变参数函数¶
声明¶
可变参数函数的声明如下:
上述代码中,参数an
为可变长度参数,其类型是后面所写类型的切片。
传参的展开¶
如果函数是可变参数,而传入的参数是切片,则可以使用...
将切片展开输入。
对于上述示例,即an就是传入的切片。以下是详细代码:
package main
import (
"fmt"
)
func f(a1 int, an ...string){
fmt.Println("parameter1 =", a1)
fmt.Println("parameter2 = ")
for _, value := range an{
fmt.Print(value, ";")
}
}
func main(){
a1 := 5
a2 := [...]string{"s1", "s2", "s3", "s4"}
a3 := a2[1:]
fmt.Println("a1 =", a1)
fmt.Println("a2 =", a2)
fmt.Println("a3 =", a3)
f(a1, a3...)
}
Note
上述代码同时展示了...
的三种用法,分别是:
声明可变长度参数函数;
声明数组时自动判断长度;
展开切片传入函数。