実装
s := make([]int, 5)
s = append(s, 1, 2, 3)
fmt.Println(s)
// [0 0 0 0 0 1 2 3]
上記はmakeメソッドでスライスを作成しました。第一引数を省略するとlenが5のスライスが作成されます。その結果ゼロ値[0, 0, 0, 0, 0]
となります。そこに上記のようなappendメソッドで要素を実行すると、余計なゼロ値に値が加わってしまいます。対策としては、下記のような記述になります。
s := make([]int, 0, 5)
s = append(s, 1, 2, 3)
fmt.Println(s)
// [1 2 3]
上記の実装だとmakeメソッドで、len0でcap5のスライスが作成されます。その結果[]
となります。そこに上記のようなappendメソッドで値を追加すると、余分なゼロ値を取り除いたスライスが作成できます。