如何在Go語言中連線兩個切片?


每當我們談到將元素附加到切片時,我們都知道我們需要使用`append()`函式,該函式將切片作為第一個引數,並將我們想要附加的值作為下一個引數。

語法如下所示。

sl = append(sl,1)

我們可以用同樣的命令附加多個值到切片“`sl`”,而不是隻附加一個數字。

考慮以下程式碼片段。

sl = append(sl,1,2,3,4)

以上程式碼在**Go**中可以正常工作。

當涉及到將一個切片附加到另一個切片時,我們需要使用**可變引數**函式簽名點。在Go語言的可變引數函式中,我們可以向函式傳遞可變數量的引數,並且可以使用引數名稱訪問所有數字。

讓我們考慮一個簡單的例子,我們將多個數字新增到整數切片中。

示例1

考慮以下程式碼。

package main
import "fmt"
func main() {
   sl := []int{1, 2, 3}
   sl = append(sl, 5, 6, 7)
   fmt.Println(sl)
}

輸出

執行程式碼時,將產生以下輸出:

[1 2 3 5 6 7]

現在,假設我們不是傳遞數字,而是將切片字面量作為引數傳遞給`append`函式。

需要注意的是,要傳遞切片字面量,我們需要使用三個點(...)。

示例2

考慮以下程式碼。

package main
import "fmt"
func main() {
   sl := []int{1, 2, 3}
   sl = append(sl, []int{4, 5}...)
   fmt.Println(sl)
}

輸出

執行程式碼時,將產生以下輸出:

[1 2 3 4 5]

我們也可以傳遞一個切片,而不是像上面示例中那樣傳遞切片字面量。

示例3

考慮以下程式碼。

package main
import "fmt"
func main() {
   sl := []int{1, 2, 3}
   sl = append(sl, 5, 6, 7)
   sl1 := []int{0}
   sl1 = append(sl1, sl...)
   fmt.Println(sl)
   fmt.Println(sl1)
}

輸出

執行程式碼時,將產生以下輸出:

[1 2 3 5 6 7]
[0 1 2 3 5 6 7]

更新於:2022年2月22日

3K+ 次檢視

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.