请看下面我的地图
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]) }