在围棋博客:去映射在行动中有极好的说明。
当使用范围循环在地图上进行迭代时,未指定迭代顺序,并且不能保证每次迭代之间都相同。从Go
1开始,运行时间会随机化映射迭代顺序,因为程序员依赖于先前实现的稳定迭代顺序。如果需要稳定的迭代顺序,则必须维护一个指定该顺序的单独的数据结构。
这是我对示例代码的修改后的版本:http :
//play.golang.org/p/dvqcGPYy3-
package mainimport ( "fmt" "sort")func main() { // To create a map as input m := make(map[int]string) m[1] = "a" m[2] = "c" m[0] = "b" // To store the keys in slice in sorted order var keys []int for k := range m { keys = append(keys, k) } sort.Ints(keys) // To perform the opertion you want for _, k := range keys { fmt.Println("Key:", k, "Value:", m[k]) }}输出:
Key: 0 Value: bKey: 1 Value: aKey: 2 Value: c



