配列は次のように大きさ(長さ)と要素の型を合わせて宣言する。
var 変数名 [大きさ]型
要素の型が決まっているので、同じ配列に異なる型の要素を格納することはできない。
また、大きさも含めて配列の型なので、要素の型が同じでも大きさが異なれば別の型とみなされる。例えば [4]int
と [8]int
は別の型だ。
宣言と同時に初期化するには次のようにする。
var 変数名 [大きさ]型 = [大きさ]型{ 値0, 値1, 値2, 値3, ... }
または
var 変数名 = [大きさ]型{ 値0, 値1, 値2, 値3, ... }
初期化しないと、配列の要素はゼロ値になる。
少し試してみよう。
package main import "fmt" func main() { var a [4]int var b [6]int = [6]int{ 0, 1, 2, 3, 4, 5 } var c = [8]int { 0, 1, 2, 3, 4, 5, 6, 7 } fmt.Println(a) fmt.Println(b) fmt.Println(c) }
o^ > go run array.go [0 0 0 0] [0 1 2 3 4 5] [0 1 2 3 4 5 6 7]
配列の要素にアクセスするには、[]
を使ってインデックスを指定する。インデックスは 0
始まりだ。
package main import "fmt" func main() { var a [4]int = [4]int{ 1, 2, 3, 4 } fmt.Println(a[2]) fmt.Println(a) a[1] = 7 fmt.Println(a[1]) fmt.Println(a) }
^o^ > go run array2.go 3 [1 2 3 4] 7 [1 7 3 4]
最後に len
関数について書いておこう。len
関数は配列の大きさ(長さ)を返す。
package main import "fmt" func main() { var a [4]int = [4]int{ 1, 2, 3, 4 } fmt.Println(a) fmt.Println(len(a)) }
^o^ > go run array3.go [1 2 3 4] 4