Golangにおける配列について

配列は、同じデータ型の連続したストレージです。この記事では、Golangで配列の挙動を説明していきます。

配列の定義

Goで配列を宣言するには、以下のように、まず名前、次にサイズ、そして型を指定します。

var ids [7]int // 要素数が7の数値型の配列

配列の初期化

配列を初期化する方法を説明します。ちなみに初期化しないと、すべての値がゼロになります。

package main
import "fmt"
 
func main() {
    var names []string
    fmt.Println(names)
     
    var people [3]string
    fmt.Println(people)
}

出力結果は以下の通りです。

[]
[  ] 

文字列のゼロ値は空の文字列””であるため、上記のように出力されます。

インデックスによる配列アクセス

配列の要素には、以下のようにインデックスでアクセスすることができます。

package main
import "fmt"
 
func main() {
    var nums = [4]int{1, 2, 3, 4} // => [1, 2, 3, 4]
    fmt.Println(nums[0]) // 1
}

配列の要素に対する反復処理

反復処理を行うには、単純に配列全体をループします。ここでは、この作業を簡単にするために、rangeというキーワードを使っています。

package main
import "fmt"
 
func main() {
     
    evens := [3]int{2, 4, 8}
    for i, v := range evens {    // here i is index and v is value
        fmt.Println(i, v)
    }
     
    // outputs
    // 0 2
    // 1 4
    // 2 8
     
}

Golangの多次元配列

多次元配列は、他の配列と同じようにGolangにおいて使用することができます。

以下は多次元配列を使用したコード例です。

package main
import "fmt"
 
func main() {
    arr := [2][2]int{
        {1, 2},
        {3, 4}, // 末尾のカンマが必要
    }
    fmt.Println(arr)
     
    // 各要素の反復処理
    for  i := 0; i < 2; i++ {
        for j := 0; j < 2; j++ {
            fmt.Printf("arr[%d][%d] = %d\n", i, j, arr[i][j] )
        }
    }
}

出力結果

[[1 2] [3 4]]
arr[0][0] = 1
arr[0][1] = 2
arr[1][0] = 3
arr[1][1] = 4
タイトルとURLをコピーしました