#16 Goで学ぶ辞書型(マップ)の基本

Goで名前と値の組み合わせを扱うには、`map`という仕組みを使います。この記事では、Goにおける辞書に相当する使い方と、初期化・削除まで含めた基本操作を解説します。

mapを作ってみる

person := map[string]string{"name": "太郎"}

空のmapを作りたい場合は`make`関数を使います。`var m map[string]string`のように宣言だけした場合はnil mapになり、要素を追加しようとすると実行時エラーになるため注意が必要です。

m := make(map[string]string) m["name"] = "太郎"

値を取り出す

存在しないキーにアクセスしても、Goではエラーにならず、その型の「ゼロ値」(以前の記事で触れた仕組み)が返ってきます。

value, ok := person["email"] if !ok { fmt.Println("見つかりません") }

2つ目の戻り値`ok`を確認することで、値が実際に存在したかどうかを判断できます。

値を削除する

delete(person, "name")

`delete`関数は、指定したキーが存在しない場合でもエラーにならず、何も起こりません。

全てのキーと値を順に処理する

for key, value := range person { fmt.Println(key, value) }

Goのmapはキーの並び順を保証しません。`range`で処理するたびに順番が変わる可能性があるため、順序が重要な場合はキーを別途スライスに取り出してソートする必要があります。

Goならではの注意点

「存在しないキーにアクセスしてもエラーにならない」という仕様は、Goを学び始めた人が誤解しやすいポイントです。値が本当に存在するかを確認したい場合は、必ず2つ目の戻り値`ok`を確認する癖をつけましょう。また、`make`せずに宣言しただけのnil mapへの書き込みはパニック(実行時エラー)になる一方、nil mapからの読み取りは問題なくゼロ値が返る、という非対称な挙動もGo特有の落とし穴です。

まとめ

Goの辞書は`map`が基本で、`make`での初期化、キーの存在確認には2つ目の戻り値、削除には`delete`関数を使います。ゼロ値やnil mapとの違いを意識して安全に扱いましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Goをもっと学びたい方には「Go言語入門」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本