Go言語における**マップ(map)**は、キーと値のペアを保持するハッシュテーブル型のデータ構造です。Pythonの辞書(dict)やJavaのHashMapに相当するものです。
1. 基本構文
マップの宣言と初期化は以下のように行います:
キーの型と値の型を指定して使用します。上記では、キーがstring型、値がint型のマップを定義しています。
2. 要素の追加・更新
キーが存在しない場合は追加され、存在する場合は値が更新されます。
3. 要素の取得
指定したキーに対応する値を取得できます。
4. 要素の存在確認
okはブール値で、キーが存在すればtrue、存在しなければfalseになります。
5. 要素の削除
指定したキーとその値を削除します。
6. マップの反復処理(for range)
マップの全要素を走査できます。順序は保証されません。
7. マップの初期値とゼロ値
-
宣言のみで
makeを使わないマップ(nilマップ)は操作できません。アクセスや代入を試みるとランタイムパニックになります。 -
make()で初期化したマップは空の状態から始まります。
8. マップの比較
マップ同士の比較はできません(==演算子は使用不可)が、nilかどうかのチェックは可能です。
9. マップの応用例
文字列中の文字の出現回数をカウントするなど、マップは頻繁に使用されます。
まとめ
| 操作 | 説明 |
|---|---|
make(map[K]V) |
マップの作成 |
m[k] = v |
要素の追加または更新 |
v := m[k] |
要素の取得 |
v, ok := m[k] |
要素の存在確認 |
delete(m, k) |
要素の削除 |
for k, v := range m |
マップの反復処理 |
Goのマップはシンプルながら非常に強力であり、効率的なキー・バリュー管理が可能です。
生成日:2025/05/03