Go 中 ...用法

Golang
492
0
0
2022-08-12
标签   Golang基础

… 用法

1.‘…’ 其实是go的一种语法糖。
它的第一个用法主要是用于函数有多个不定参数的情况,可以接受多个不确定数量的参数。
2.第二个用法是slice可以被打散进行传递

例子1:

其实可以理解为切片的变体
func test1(args ...string) { //可以接受任意个string参数 
    for _, v:= range args{
        fmt.Println(v)
    }
}
func test2(params []string) { //可以接受任意个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]