Go Map 详解
Map 创建、增删改查、遍历、nil map 陷阱 · 难度:入门 · +20XP
Map — 键值对集合
Map 存储键值对,查找 O(1)。Go 的 map 是引用类型,类似于 Python 的 dict 或 JS 的 Object。
创建 Map
// make 创建(推荐)
ages := make(map[string]int)
ages["张三"] = 25
ages["李四"] = 22
// 字面量初始化
scores := map[string]int{"张三": 85, "李四": 92, "王五": 78}
// nil map 不能写入!
var m map[string]int // m == nil
// m["key"] = 1 // ❌ panic!
CRUD 操作
// 增/改
m["张三"] = 25
// 查(检查 key 是否存在)
age, ok := m["张三"]
if ok { fmt.Println("张三", age) }
// 删
delete(m, "张三")
// 遍历(顺序随机!每次可能不同)
for name, age := range m { fmt.Println(name, age) }
如果需要有序遍历,先取出所有 key 排序,再按排序后的 key 访问。