寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

Goでsliceをを結合する方法

Goのスライス同士を結合しようとした場合、
泥臭くループを回してappendをしようとしたあなた。ちょっと待って。✋

append のシグニチャをみてみる

builtin.go を読んでみましょう

func append(slice []Type, elems ...Type) []Type

ほほう。
二つ目の引数は可変長で受け取れるようになっている

appendは一度に複数追加できる

回り道しますが、
可変長の引数なので

append(hogeslice, elem1, elem2, elem3)

のような複数の追加が可能です。

可変長引数にスライスは ... をつけると渡せる

タイトルの通り。
つまり

append(hogeslice, fooslice...)

という感じでslice同士を結合することが可能です。
もちろん↑のコードは戻り値を変数で受け取ってませんが、
ちゃんと compositeslice := append(~~~) のように書いてくださいね。