Go map 底层实现原理:哈希桶、冲突解决与扩容机制
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
map 底层是哈希表:数组 + 桶(bucket),每个桶存 8 个 key-value,冲突用溢出桶链式解决;装载因子超 6.5 触发扩容(翻倍),溢出桶过多触发等量扩容。key 要求:可比较类型(== 可用的类型),如 string、int、bool、指针、可比较的 struct/数组;slice、map、function 不可作 key(不可比较)。map 遍历顺序随机;读不存在的 key 返回零值,用 v, ok := m[k] 判断存在。
回复
0 条回复