Go言語で2つのスライスを連結、結合する方法を解説します。
答えをいえば、スライスを結合するにはappend関数を使用します。append
関数は元のスライスの要素を含む新しいスライスを返します。
以下、Go言語で2つのスライスを結合するサンプルコードです。
package main
import "fmt"
func main() {
a := []int{1, 2, 3}
b := []int{4, 5, 6}
c := append(a, b...)
fmt.Println(c) // [1 2 3 4 5 6]
}
この例ではa
とb
のスライスをappend
関数を使って連結しています。
ポイントはb
スライスの後にある...
の部分です。これは省略演算子で、b
のスライスを個々の引数に展開して渡します。
この省略演算子がないと、append
関数はb
を単一の要素として扱い、入れ子になったスライスが生成されるので注意してください。
ちなみに、append
関数は新しいスライスを返し元のスライスを変更しません。(非破壊的)
元のスライスのいずれかを変更する場合は、次のようにappend
の結果をそのスライスに再代入することができます。
package main
import "fmt"
func main() {
a := []int{1, 2, 3}
b := []int{4, 5, 6}
a = append(a, b...) // aに再代入
fmt.Println(a) // [1 2 3 4 5 6]
}