Golang怎么map嵌套使用_Golang如何创建map的value也是map的结构【基础】

张开发
2026/4/16 4:33:09 15 分钟阅读

分享文章

Golang怎么map嵌套使用_Golang如何创建map的value也是map的结构【基础】
声明 map[string]map[string]int 需先 make 外层 map再对每个 key 单独 make 内层 map直接赋值会 panic推荐用 struct 替代以提升性能与类型安全。怎么声明 map[string]map[string]int 这种嵌套结构直接写 map[string]map[string]int 是合法的但初始化时容易 panic因为外层 map 的 value 是一个未初始化的内层 map 指针对它做赋值会报 panic: assignment to entry in nil map。常见错误现象只初始化了外层 map没逐层初始化内层 map一写就崩。必须先 make 外层 map再对每个 key 对应的内层 map 单独 make不能用 m[a][b] 1 一步到位除非你提前确保 m[a] 已是一个非 nil 的 map[string]int推荐在写入前检查并初始化if m[a] nil { m[a] make(map[string]int) }var m map[string]map[string]intm make(map[string]map[string]int)m[user] make(map[string]int) // 必须这一步m[user][age] 25为什么不用 map[string]*map[string]int有人想绕过初始化问题改成指针类型——这是错的路。Go 中 map 本身就是引用类型map[string]int 已经是类似指针的语义再套一层 *map[string]int 不仅没好处反而让代码更难读、更易出错比如忘记解引用。使用场景里几乎不存在需要二级指针的理由你要的是“某个用户下多个字段”不是“某个用户下指向另一个 map 的指针”。立即学习“go语言免费学习笔记深入” Trenz AI驱动的社交电商营销平台专为TikTok Shop设计

更多文章