请看下面我的地图
var romanNumeralDict map[int]string = map[int]string{ 1000: "M",900 : "CM",500 : "D",400 : "CD",100 : "C",90 : "XC",50 : "L",40 : "XL",10 : "X",9 : "IX",5 : "V",4 : "IV",1 : "I",}
我希望按照键的大小顺序遍历此映射
for k,v := range romanNumeralDict { fmt.Println("k:",k,"v:",v) }
然而,这打印出来
k: 1000 v: M k: 40 v: XL k: 5 v: V k: 4 v: IV k: 900 v: CM k: 500 v: D k: 400 v: CD k: 100 v: C k: 90 v: XC k: 50 v: L k: 10 v: X k: 9 v: IX k: 1 v: I
有没有办法可以按照键的大小顺序打印出来,所以,我想像这样循环遍历这张地图
k:1 K:4 K:5 K:9 k:10
等等…
非常感谢您的帮助!
收集所有密钥,对它们进行排序并按键迭代地图,如下所示:
keys := make([]int,0) for k,_ := range romanNumeralDict { keys = append(keys,k) } sort.Ints(keys) for _,k := range keys { fmt.Println(k,romanNumeralDict[k]) }