golang有序遍历map
一、问题
不知道小伙伴有没有发现,Go 语言的 map 是无序遍历的,一开始我不知道,啪,测试给我指回来一个 bug,就是多次请求,发现多次请求返回的数据顺序不一致。经过排查,我才知道 Go 语言的 map 原来是无序的。
二、解决思路
1、方法一
借助一个 slice 来保存 map 的 key ,通过遍历排序后的 slice 来达到根据 keys 遍历 map 的效果
原来的代码:
1 | var ( |
添加有序遍历后的代码:
1 | // map根据key排序 |
这样就实现了map的有序遍历。
2、方法二
开源实现:已经有人实现了有序 map ,下载地址:这是一个链接 elliotchance/orderedmap
1 | package main |
三、总结
我觉得第一种方式就挺好,目前项目中也是这样用的。第二种虽然方便,但用法不是很熟悉,就后续再说吧,当做一个备选方案。
点关注,不迷路
好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。
白嫖不好,创作不易。各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
如果本篇博客有任何错误,请批评指教,不胜感激 !
原文作者: create17
原文链接: https://841809077.github.io/2021/01/27/GoLang/go-map-sort-foreach.html
版权声明: 转载请注明出处(码字不易,请保留作者署名及链接,谢谢配合!)