はじめに
Go言語でデータを扱うときに便利なのが「map(マップ)」です。
「配列と何が違うの?」
「どうやって使うの?」
👉 この記事では、Goのmapの使い方を初心者でも理解できるように解説します。
mapとは?(超重要)
mapとは「キーと値をセットで管理するデータ構造」です。
イメージ👇
- 名前 → 年齢
- 商品名 → 価格
👉 「辞書」や「連想配列」と同じです。
mapの基本構文
map[キーの型]値の型
mapの作り方(基本)
方法①:初期化
m := map[string]int{
"apple": 100,
"banana": 200,
}
👉 一番よく使う方法
方法②:makeを使う
m := make(map[string]int)
👉 空のmapを作成
値の取得
price := m["apple"]
fmt.Println(price)
👉 キーを指定して取り出す
値の追加・更新
m["orange"] = 300
👉 新しい要素を追加できる
要素の削除
delete(m, "banana")
👉 指定したキーを削除
存在チェック(重要)
value, ok := m["apple"]
if ok {
fmt.Println("存在する:", value)
} else {
fmt.Println("存在しない")
}
👉 実務で超重要
mapのループ(for + range)
for k, v := range m {
fmt.Println(k, v)
}
👉 すべてのデータを取得
実践例①:ユーザー管理
users := map[string]int{
"Tom": 20,
"Ken": 25,
}
fmt.Println(users["Tom"])
実践例②:カウント処理
text := "go go golang"
count := make(map[string]int)
words := []string{"go", "golang"}
for _, w := range words {
count[w]++
}
👉 データ分析で使う
mapとスライスの違い
| 項目 | map | スライス |
|---|---|---|
| 管理方法 | キー | インデックス |
| 検索 | 高速 | 遅い |
| 用途 | 検索・管理 | 順番処理 |
👉 使い分けが重要
初心者がつまずくポイント
❌ 初期化してない
var m map[string]int
m["a"] = 1 ← エラー
👉 makeが必要
❌ 存在チェックしない
👉 データがないと0が返る
❌ 順番が保証されない
👉 mapは順不同
実践サンプル(まとめ)
package main
import "fmt"
func main() {
m := map[string]int{
"apple": 100,
"banana": 200,
}
m["orange"] = 300
for k, v := range m {
fmt.Println(k, v)
}
}
学習のコツ
- map+rangeをセットで覚える
- 存在チェックを使う
- 実際に書く
👉 「データ管理=map」
まとめ|mapは超重要
Go言語のmapは👇
✔ キーと値で管理
✔ 高速検索
✔ 実務で頻出
👉 絶対に覚えるべき機能


コメント