Goの配列は要素数を宣言する。宣言した数を超える要素は格納できない。少ない分には可能。Goは配列よりスライスの方がよく使われるらしい。

 

配列の基本

配列の宣言はvar 配列名[要素数]型名 の形で行う。値の格納と同時に宣言する場合は、波括弧に要素を格納する。

array.go

package main

import "fmt"

func main() {
    //配列の変数宣言 + 角括弧[]の中に格納するデータ数 + データの型名を記述
    var num [5]int
    num[0] = 1000
    num[1] = 2000
    num[2] = 3000
    num[3] = 4000
    num[4] = 5000
    fmt.Println(num)

    //要素の値を代入して宣言する。
    //配列の変数宣言 + イコール + 要素数と型名 + 波括弧{}内に要素の値を格納。
    var city [5]string = [5]string{"NY", "Paris", "London", "Sydney", "Tokyo"}
    fmt.Println(city)
}

 

結果

$ go run array.go 
[1000 2000 3000 4000 5000]
[NY Paris London Sydney Tokyo]

 

要素数の増減

先述の通り、宣言した数を超える要素は格納できないが、少ない分には可能。要素の数が足りていなくても宣言した要素数は保持される。

array2.go

package main

import "fmt"

func main() {

    //宣言した要素数より多い要素の格納は不可。
    //宣言した要素数より少ない要素数の格納は可能。
    var city [5]string = [5]string{"NY", "London", "Sydney", "Tokyo"}
    fmt.Println(city)

    //配列の要素数を出力
    //この場合実際に格納した数ではなく宣言した数を出力する
    fmt.Println(len(city))
}

 

結果

$ go run array2.go
[NY London Sydney Tokyo ]
5

 

配列の要素へのアクセス

以下のように記述して配列の要素を取得できる。

変数名 := 配列名[インデックス値]

c0 := city[0]

 

array3.go

package main

import "fmt"

func main() {

    var city [5]string = [5]string{"NY", "Paris", "London", "Sydney", "Tokyo"}
    //配列の要素すべて出力
    fmt.Println(city)

    //配列の要素を取得して変数に格納
    c0 := city[0]
    c1 := city[1]
    c2 := city[2]
    c3 := city[3]
    c4 := city[4]

    //個別の要素を出力
    fmt.Println(c0)
    fmt.Println(c1)
    fmt.Println(c2)
    fmt.Println(c3)
    fmt.Println(c4)

}

 

結果

$ go run array3.go
[NY Paris London Sydney Tokyo]
NY
Paris
London
Sydney
Tokyo

 

参考
【Go入門】配列(Array)の宣言と要素へのアクセス

 

RWC2019 RWC2019 RWC2019


関連がありそうな記事