13
Golang'da bir haritadan nasıl sıralanır?
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",
}
Ben Ancak anahtar
for k, v := range romanNumeralDict {
fmt.Println("k:", k, "v:", v)
}
büyüklüğüne sırasına göre bu harita üzerinden döngü için arıyorum benim haritanın altındaki bakınız, bu
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
yazdırır Onları anahtarın sırasına göre yazdırabilmem için bir yol var mı? Bu şekilde bu haritadan geçmek istiyorum
k:1
K:4
K:5
K:9
k:10
vs ...
Yardımlarınız için çok teşekkür ederiz!
Sen, döngü gerekir Dilime çiftleri eklemek ve dilim sıralamak. – Crisfole
Bkz. Http://stackoverflow.com/questions/12108215/golang-map-prints-out-of-order –
[Özellik] 'e göre (http://golang.org/ref/spec#For_statements), " Haritalar üzerinden yineleme sırası belirtilmez ve bir yinelemeden diğerine aynı olması garanti edilmez. " Go yazarları iterasyon dizisini bilerek randomize ettiler (yani, her bir aralık ifadesinin ayrı bir ordr ürettiği şekilde bir rasgele sayı üreteci kullandılar) böylece kimse herhangi bir interaksiyon sırasına yanlış bir şekilde bağlı değildir. (Her seferinde farklı olan siparişe bağlı olursanız ne olur? Hm ...) – fuz