メンチカツ

ロースカツが好きです

【メモ】Golangでスライス型にスライス型をappend

Golangでスライス型にスライス型をappendする。

s1 := []string{"aa", "bb", "cc"}
s2 := []string{"dd", "ee", "ff"}

s1 = append(s1, s2)

としてgo runすると

cannot use r (type []string) as type string in append

とエラーしてしまう。[]stringにappendできるのはstringだよ!と。

これは、appendの2つめの引数に3点リーダ(...)を付与することで解決できます。

s1 = append(s1, s2...)
// s1=>[]string{"aa", "bb", "cc", "dd", "ee", "ff"}

s2が可変引数として展開されて、以下を実行したのと同じ結果が得られます。

s1 = append(s1, "dd", "ee", "ff")