3章 合成型
3.1 配列
定義方法
code:go
配列リテラルの定義方法
code:go
要素に対して値を指定
code:go
var y = ...int{1, 3: 10, 9: 5} // ...で記載して大きさを指定しなくてもOK fmt.Println(x == y) // true
多次元配列は以下のように設定
code:go
var x 23int // 0 0 0] [0 0 0 要素への代入は以下
code:go
配列は配列の大きさは型として認識され、コンパイルする時点で確定され変更することができない
一度定義した配列の型を変更したりできない(x [3]intとx[4]intは別の値として認識され、変更することもできない)
そのためあまり配列を使用されることはない。可変長の配列を使用するときには、スライスを用いる
3.2 スライス
可変長配列を用いるときに使用する。一時的な配列データを保持するときなどに使用する
配列みたいに大きさを決まってなく、柔軟に変更できる
定義方法
code:go
var x = []int{1, 2, 3} // 1 2 3 配列を定義するときの大きさの値がない書き方をする
また上記の記法をスライスリテラルという
指定の要素に対して値を代入することも可能
code:go
スライスのゼロ値はnilになる。nilは値がないことを意味する。nilは6章 ポインタで説明する。 code:go
var x []int
fmt.Println(x == nil) // true
スライス通しの比較はできない。比較したい場合は、標準ライブラリslicesを使用する。(nilだけは比較ができる)