|
请看下面我的地图
0 {, ^8 F; X2 U* h/ w$ Ovar 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 B5 N" f) |2 w& v: ] 我希望按照密钥大小的顺序遍历此地图
8 E% V7 n2 u) K! i0 ^: Q7 n for k,v := range romanNumeralDict fmt.Println("k:",k,"v:",v) }
# a# B; N6 K5 M/ b2 z7 p! { 但是,它会被打印出来5 g1 R; y& q$ m9 L: L
k: 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# U0 C" v; A, |! w: a3 h) Z
有没有办法按照密钥大小的顺序打印出来?因此,我想这样一个循环遍这张地图
9 ~8 c I( D# s6 B9 t* \8 Yk:1K:4K:5K:9k:10$ U" o; k% N% K1 s
等等…# M$ R2 c3 T1 h+ ]
非常感谢您的帮助!
* E3 ~6 x6 N+ n: C* }% \
- t! e& F2 [& h9 H 解决方案:
8 a2 ]! |( x& A9 b7 B 收集所有键,对其进行排序,并按键迭代您的地图,如下所示:
0 V, k- B- G r$ y" pkeys := make([]int,0)for k,_ := range romanNumeralDict keys = append(keys,k)}sort.Ints(keys)for _,k := range keys fmt.Println(k,romanNumeralDict[k])}
' r8 G; P: r8 y J! { |
|