|
请看下面我的地图" H1 c) ?, g" \* }, }: l G
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", "IX", 5 : "V", "IV", 1 : "I",}. g: k7 U0 d) d+ X' C
我希望按照密钥大小的顺序遍历此地图
. R" Y0 X( b% W' u0 P; G) V for k,v := range romanNumeralDict fmt.Println("k:",k,"v:",v) }, G0 F* H* D3 x) k8 ^7 j7 ]
但是,它会被打印出来- W8 W! W8 U1 B
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: I4 c0 {9 I( G6 ?8 s0 r$ F
有没有办法按照密钥大小的顺序打印出来?因此,我想这样一个循环遍这张地图, j: q8 Z. t. T" o G4 z. f
k:1K:4K:5K:9k:10
$ O( f4 ~1 t( e* a; J' ] 等等…) z- N6 p. P! @+ r: A5 p+ n
非常感谢您的帮助!- i9 t% }" _5 B; T6 z) U4 Y% I
$ m; f! U( o, a: B" ]4 g7 F
解决方案: / K/ y3 v( z3 U% i* T* N( R# l
收集所有键,对其进行排序,并按键迭代您的地图,如下所示:/ ]& S3 q1 m/ B5 H
keys := make([]int,0)for k,_ := range romanNumeralDict keys = append(keys,k)}sort.Ints(keys)for _,k := range keys fmt.Println(k,romanNumeralDict[k])}! t1 l ^$ ~/ F7 G: H$ F, a# K& _
|
|