… 用法
1.‘…’ 其实是go的一种语法糖。
它的第一个用法主要是用于函数有多个不定参数的情况,可以接受多个不确定数量的参数。
2.第二个用法是slice可以被打散进行传递
例子1:
其实可以理解为切片的变体
func test1(args ...string) {
for _, v:= range args{
fmt.Println(v)
}
}
func test2(params []string) {
for _, v:= range params{
fmt.Println(v)
}
}
func main() {
var strss= []string{"donglei1", "donglei2"}
test1(strss...)
fmt.Println("-------------")
test2(strss)
os.Exit(300)
}
donglei1
donglei2
-------------
donglei1
donglei2
常用案例解释
当一个切片加上 … (a…) 相当于把一个切片打散成多个变量,每个变量是切片的一个元素
当…加上变量 (…a) 相当于把传过来的多个参数变量整合为一个 切片,名字叫做a
func main() {
strss1 := []string{
"donglei1",
"donglei2",
}
var strss2= []string{
"donglei3",
"donglei4",
}
strings := append(strss1, strss2...)
fmt.Println(strings)
strings2 := append(strings, "donglei5","donglei6")
fmt.Println(strings2)
os.Exit(300)
}
[donglei1 donglei2 donglei3 donglei4]
[donglei1 donglei2 donglei3 donglei4 donglei5 donglei6]