主题
map 的注意事项
使用 Map 时需注意以下几点,确保程序正确高效运行。
1. 必须初始化
未初始化的 Map 为 nil,不能直接赋值操作,需先使用 make
初始化:
go
var m map[string]int
// m["key"] = 1 // 会导致运行时 panic
m = make(map[string]int)
m["key"] = 1
2. 并发安全
Map 不是并发安全的,多个 goroutine 同时读写会引发竞态条件,应使用 sync.Map
或加锁保护。
3. 键类型限制
Map 的键必须是可比较类型,如基本类型、指针、接口、数组等,不能是切片、函数或 Map。
4. 遍历顺序随机
Map 遍历顺序是随机的,不应依赖遍历顺序。
正确使用 Map 能提高代码稳定性,避免常见运行时错误。