Golang:配列、スライス
配列
[n]T型
配列の長さは型の一部
固定長(配列のサイズは変えられない)
スライス
[]T型
可変長
a[low:high]のhighの要素を除く半開区間
配列への参照のようなもので、元の配列の部分列を指し示す
新しく配列が作られて実体として存在しているのではない
そのため、スライスの要素を変更すると、元の配列の要素が変化する
例
package main
import "fmt"
func main() {
nums := [10]string{"0","1","2","3","4","5","6","7","8","9"}
var s []string = nums[1:5]
fmt.Println(s) // [1 2 3 4]
s[0] = "100"
fmt.Println(s) // [100 2 3 4]
fmt.Println(nums) // [0 100 2 3 4 5 6 7 8 9]
}
[1 2 3 4]
[100 2 3 4]
[0 100 2 3 4 5 6 7 8 9]
1列目の結果から、スライスの取得範囲が最後の要素を含まない半開区間であることが示された。
2、3列目の結果からスライスの要素を変更すると元の配列の要素も変更されることが示された。