🙌

Go言語のスライスについて

2024/04/20に公開

1, スライスを用いて、配列を表現

プログラミング言語における、スライスとは、「配列から一部を切り取る処理」である。
しかしながら、Go言語においては、これに加え、配列として使用することも多い。
理由としては、Go言語における配列の宣言は、長さを変えられず、不便なためである。

main.go
//これは値を10個しか格納できない
var a [10]int

スライスを用いて、配列を表現すると、

main.go
//配列が可変長になり、扱いやすくなる
var s = []int{1,2,3,4,5}

2,一般的なスライスの使い方

プログラミング言語において、一般的なスライスとしての使い方ももちろん可能である。

main.go
s := []int{1,2,3,4}
//スライスにて2番目から4番目の1個前までの配列を作成
s2 := s[1:3]
fmt.Println(s2)

また、スライスの要素を変更すると、スライスの参照元も変更される

main.go
s := []string{"あいざわ", "あきもと", "あんどう"}
s2 := s[0:2]
fmt.Println(s2) //[あいざわ あきもと]が出力

s2[0] = "あいかわ"
fmt.Println(s2) //[あいかわ あきもと]に変更
fmt.Println(s) //[あいかわ あきもと あんどう]と参照元も変更される

3,スライスの長さと容量について

スライスには長さと容量があり、
長さは要素の数、容量は元となる配列の要素数

main.go
//要素2つ、容量2つ
s := []int{1,2}

4,make関数の使い方

スライスにおけるmake関数の使い方は、配列の型、要素の数、容量を指定し、データ構造を作成するために使われる。

main.go
//s := make([]型, length, capacity)
//interger型の配列で長さ:5、容量:5
s := make([]int, 5, 5)

Discussion