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语言学习笔记、语法知识、技术要点和个人理解及实战