Go 中 ...用法

董雷發表於2021-12-29

… 用法

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]
本作品採用《CC 協議》,轉載必須註明作者和本文連結
good good study day day up

相關文章