makeを使ったスライスの作成

スライスは組み込みのmake関数を使って作成できます。これが動的サイズの配列を作成する方法です。

  1. ``````bash
  2. a := make([]int, 5) // len(a)=5
  3. `

容量を指定するには、makeに3番目の引数を渡します:

  1. b := make([]int, 0, 5) // len(b)=0, cap(b)=5
  2. b = b[:cap(b)] // len(b)=5, cap(b)=5
  3. b = b[1:] // len(b)=4, cap(b)=4
  1. package main
  2. import "fmt"
  3. func main() {
  4. a := make([]int, 5)
  5. printSlice("a", a)
  6. b := make([]int, 0, 5)
  7. printSlice("b", b)
  8. c := b[:2]
  9. printSlice("c", c)
  10. d := c[2:5]
  11. printSlice("d", d)
  12. }
  13. func printSlice(s string, x []int) {
  14. fmt.Printf("%s len=%d cap=%d %v\n",
  15. s, len(x), cap(x), x)
  16. }