|
请看下面我的地图
+ K/ T! v* k4 b* A+ V- j/ i7 x" xvar 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", "IX", 5 : "V", "IV", 1 : "I",}
# ^) ?4 s F& @3 |% w; W' d R! O 我希望按照密钥大小的顺序遍历此地图
# T0 {% A8 X) k9 E# j for k,v := range romanNumeralDict fmt.Println("k:",k,"v:",v) }
' I- ^/ Y# a# Y4 M7 r$ [ A3 r 但是,它会被打印出来
: |! G$ p L& j8 X: ?3 g- Nk: 1000 v: Mk: 40 v: XLk: 5 v: Vk: 4 v: IVk: 900 v: CMk: 500 v: Dk: 400 v: CDk: 100 v: Ck: 90 v: XCk: 50 v: Lk: 10 v: Xk: 9 v: IXk: 1 v: I
1 }- h' [9 Q' k" y8 p! {5 S 有没有办法按照密钥大小的顺序打印出来?因此,我想这样一个循环遍这张地图
5 |+ g/ o2 t+ X3 C3 m3 _/ A: [1 Dk:1K:4K:5K:9k:10
) @9 j6 |# Z' v 等等…
# g' i1 C% D- Y, T4 t非常感谢您的帮助!
m+ U' w# t, d) P2 r
8 K& C1 {3 c5 q( n& X 解决方案:
# A5 T8 u) _2 [% V' K- T 收集所有键,对其进行排序,并按键迭代您的地图,如下所示:
! N- f1 Q2 N* C2 `7 s8 vkeys := make([]int,0)for k,_ := range romanNumeralDict keys = append(keys,k)}sort.Ints(keys)for _,k := range keys fmt.Println(k,romanNumeralDict[k])}' \/ H; \4 o. ^" h1 T: C
|
|