配列
配列は、同じ型のデータを並べて格納したもの(固定長)です。
- 配列内のひとつひとつのデータを『要素』と呼ぶ
- 要素を識別する通し番号を『添字』と呼ぶ
- 添字は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]