配列

配列は、同じ型のデータを並べて格納したもの(固定長)です。

  • 配列内のひとつひとつのデータを『要素』と呼ぶ
  • 要素を識別する通し番号を『添字』と呼ぶ
  • 添字は0から順に採番される
  • 配列の長さは固定(途中で変更できない)
  • 配列の型には配列の長さを含む([2]int[3]intは別の型)

配列の宣言と初期化

これはint型の要素を2つ格納できる配列を宣言したものです。

// 形式: var 変数名 [要素数]要素の型
var a [2]int

配列の宣言と代入を一緒にできます。

// 形式: var 変数名 = [要素数]要素の型{初期値1, 初期値2...}
var a = [2]int{3, 1}
// varの代わりに:=を使用
b := [2]int{3, 1}

要素数は指定した値から推論できるため、代わりに...と記述できます。

a := [...]int{3, 1}

配列のゼロ値

配列のゼロ値は各要素のゼロ値です。

var i [2]int
fmt.Println(i) // [0 0]

配列の操作

配列の要素を操作したり、配列全体をコピーできます。

  • 配列の要素を取得/設定するには[]の中に添字を指定する
  • 配列の長さはlen関数で確認できる
  • 配列を別の変数に代入すると各要素の値がコピーされる

対応するサンプルコードを次に示します。

var a [2]int
// 配列の要素を設定
a[0] = 3
a[1] = 1
// 配列の要素を取得
fmt.Println(a[0]) // 3
fmt.Println(a[1]) // 1
// 配列の長さを取得
fmt.Println(len(a)) // 2
// 配列の代入(各要素の値がコピーされる)
var b [2]int
b = a
// bの操作がaに影響しない(aとbは別物)
b[0] = 2
fmt.Println(a) // [3 1]
fmt.Println(b) // [2 1]