配列は、同じデータ型の連続したストレージです。この記事では、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