go语言多次遍历map时保证元素顺序一致的一种方法
//本演示程序展示内容:
//1. go运行时在初始化map迭代器时对起始位置做了随机处理,因此不要依赖遍历map所得到的元素顺序,同一map多次
// 遍历,遍历的元素次序并不相同。
//2. 可以利用slice按照一定的顺序遍历map,保证每次遍历顺序一致
package main
import "fmt"
func doIteration(s []int, m map[int]int) {
fmt.Printf("{ ")
for _, k := range s {
v, ok := m[k]
if !ok {
continue
}
fmt.Printf("[%d, %d]", k, v)
}
fmt.Printf(" }\n")
}
func main() {
var s []int
m := map[int]int{
1: 11,
2: 22,
3: 33,
}
for k, _ := range m {
s = append(s, k)
}
for i := 0; i < 3; i++ {
doIteration(s, m)
}
//doIteration(s, m)
}
Go语言基础及实战 文章被收录于专栏
Go语言学习笔记、语法知识、技术要点和个人理解及实战
查看21道真题和解析