スライスへの追加

新しい要素をスライスに追加することは一般的であり、Goは組み込みの append 関数を提供しています。組み込みパッケージの ドキュメント では append について説明しています。

  1. func append(s []T, vs ...T) []T

append の最初のパラメータ sT 型のスライスであり、残りはスライスに追加する T 値です。

append の結果の値は、元のスライスのすべての要素と提供された値を含むスライスです。

s のバックアレイが与えられたすべての値を収容するには小さすぎる場合は、より大きな配列が割り当てられます。返されるスライスは新しく割り当てられた配列を指します。

(スライスについて詳しく学ぶには、スライス: 使用法と内部の記事を読んでください。)

  1. package main
  2. import "fmt"
  3. func main() {
  4. var s []int
  5. printSlice(s)
  6. // append works on nil slices.
  7. s = append(s, 0)
  8. printSlice(s)
  9. // The slice grows as needed.
  10. s = append(s, 1)
  11. printSlice(s)
  12. // We can add more than one element at a time.
  13. s = append(s, 2, 3, 4)
  14. printSlice(s)
  15. }
  16. func printSlice(s []int) {
  17. fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s)
  18. }