13
しかし、これはgolangの地図を順番に反復する方法は?
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
を出力し、私はキー
for k, v := range romanNumeralDict {
fmt.Println("k:", k, "v:", v)
}
の大きさのために、このマップをループするために探しています私のマップ
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",
}
は、以下を参照してくださいキーの大きさの順に印刷する方法はありますか?このマップをこのようにループしたいのですが
k:1
K:4
K:5
K:9
k:10
等...
はあなたの助けをありがとうございました!
あなたは、をループする必要がありますスライスにペアを追加し、スライスを並べ替えます。 – Crisfole
http://stackoverflow.com/questions/12108215/golang-map-prints-out-of-order –
[spec](http://golang.org/ref/spec#For_statements)によると、「Theマップ上の反復順序は指定されず、ある反復から次の反復まで同じであることが保証されていません。 Goの著者は意図的に反復シーケンスをランダム化していた(すなわち、各レンジステートメントが異なるordrをもたらすように乱数ジェネレータを使用する)ので、誰もどのinteration orderにも間違って依存していませんでした。 (毎回違う注文に依存しているとどうなりますか?hm ...) – fuz