背景
业务代码中的一个BUG,忘了保存现场,文字描述,自行脑补
画二维折线图,发现横轴展示的时间是乱序的
论证
调试代码如下:
func main() {
a := make(map[string]string)
a["a"] = "a"
a["b"] = "b"
a["c"] = "c"
a["d"] = "d"
for k, v := range a {
fmt.Println(k + ":" + v)
}
}
复制代码
多次运行结果:
原因
golang源码在map遍历时的位置控制使用了随机数,传送门
为什么这么设计
解决
- import sort
- 维护一个数组
参考文献
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END