スライス

スライスは配列に似ているが、要素を追加することによって大きさ(長さ)を変更できるデータ構造。大きさの変更は自動的になされる。小さくすることはできない。たぶん。

スライスの宣言は次のように大きさを指定せずに行う。

同時に初期化するには:

大きさを指定しないことを除けば、配列と一緒だな。ちょっと試してみよう。

^o^ > go run slice.go
[]
[1 2 3 4 5]
[6 7 8 9 10]

スライスはまた、配列の部分列を取り出すことでも作れる。

操作 意味
s[m:n] m から n – 1 まで
s[m:] m から最後尾まで
s[:n] 先頭から n – 1 まで
s[:] 先頭から最後尾まで

^o^ > go run slice2.go
[3 4 5 6]
[4 5 6 7 8]
[1 2 3]
[1 2 3 4 5 6 7 8]

スライスを配列の部分列として取り出した場合、元の配列とデータ格納領域を共有することに注意。つまり、スライスの要素を変更すると、元の配列の対応する要素も変更される。

^o^ > go run slice3.go
[1 2 3 4]
[1 2 10 4]
[1 2 10 4]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です