Dev Study
Go コース

23. マップ — キーと値の連想配列

マップはキーから値を引くための連想配列で、map[キーの型]値の型 と書きます。使う前に make(map[string]int) で初期化するか、リテラル map[string]int{"a": 1} で作ります。m["key"] = 値 で代入、m["key"] で取得、delete(m, "key") で削除します。存在しないキーを引くと、エラーにはならず値の型のゼロ値が返ります。

ここで重要なのが「ある/なし」を区別する ok イディオムです。value, ok := m[key] と二つの戻り値で受け取ると、ok にキーが存在したかどうかが入ります。ゼロ値(int の 0 など)が本当に格納された値なのか、それとも単にキーが無いだけなのかを、この ok で見分けられます。

マップのゼロ値は nil で、nil マップからの読み取りはできますが書き込もうとすると実行時パニックになります。そのため必ず make かリテラルで初期化してから使います。また反復(range)の順序は毎回ランダムで保証されない点も、Go のマップの特徴として覚えておきましょう。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

Go
公式ドキュメントで詳しく ↗