配列は次のように大きさ(長さ)と要素の型を合わせて宣言する。
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