猿问

如何按顺序遍历Golang中的地图?

请看下面我的地图


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

等等...


非常感谢您的帮助!


慕容708150
浏览 147回答 3
3回答

跃然一笑

收集所有键,对它们进行排序并按键迭代您的地图,如下所示:keys := make([]int, 0)for k, _ := range romanNumeralDict {    keys = append(keys, k)}sort.Ints(keys)for _, k := range keys {    fmt.Println(k, romanNumeralDict[k])}
随时随地看视频慕课网APP

相关分类

Go
我要回答