【Go言語】スライス

最近、Go言語を勉強しているので、メモがてら書いておきます。

スライスの特徴

容量を増やせば可変長型配列のように使えるようです。 GoはArrayだと要素数は最初に宣言した以上には増やせません。

使い方コード例

package main

import "fmt"

func main() {
  s := []int{2, 3, 5, 7, 11, 13}
  var s1[]int
  var s2[]int
  var s3[]int
  
  s1 = s[1:4]
  fmt.Println(s1)  // [3 5 7]
  s2 = s[:2] 
  fmt.Println(s2) // [2 3]
  s3 = s[1:]     
  fmt.Println(s3) // [3 5 7 11 13]
  fmt.Println(cap(s)) // 配列の容量
  fmt.Println(len(s)) // 配列の長さ
}

make append

package main

import "fmt"

func main() {
  slices := make([]int, 3)
  fmt.Println(slices)  // [0 0 0]
  var slices_append []int
  slices_append = append(slices, 1) // 追加
  fmt.Println(slices_append) // [0 0 0 1]
  fmt.Println(len(slices_append)) // 要素数 4
  fmt.Println(slices_append[2]) //要素にアクセス 0
}

参考