Heim >Backend-Entwicklung >Golang >Wie sortiere ich eine Go-Map nach ihren Werten?
Sortieren einer Karte nach ihren Werten in Go
Das Sortieren einer Karte nach ihren Werten in Go erfordert eine benutzerdefinierte Implementierung der Sortierschnittstelle. Hier ist eine Lösung, die einen PairList-Typ implementiert und notwendige Funktionen zum Sortieren definiert:
<br>func rankByWordCount(wordFrrequencies map[string]int) PairList {<br> pl := make(PairList, len(wordFrequences))<br> i := 0<br> für k, v := Bereich WortFrequenzen {</p> <pre class="brush:php;toolbar:false">pl[i] = Pair{k, v} i++
}
sort.Sort(sort.Reverse(pl))
return pl
}
type Pair struct {
Schlüsselzeichenfolge
Wert int
}
Typ PairList []Pair
func (p PairList) Len() int { return len(p) }
func (p PairList) Less(i, j int) bool { return p[i].Value < ; p[j].Value }
func (p PairList) Swap(i, j int){ p[i], p[j] = p[j], p[i] }
Mit der Funktion rankByWordCount können Sie eine Karte sortieren nach folgt:
<br>wordFrequences := map[string]int{<br> "hello": 10,<br> "foo": 20,<br> "bar": 20 ,<br>}</p> <p>sortedPairs := rankByWordCount(wordFrequences)</p> <p>für _, Paar := Bereich sortiertPairs {<br> fmt.Println(pair.Key, pair.Value)<br>}<br>
Ausgabe:
<br>foo 20<br>bar 20<br>hello 10<br>
Das obige ist der detaillierte Inhalt vonWie sortiere ich eine Go-Map nach ihren Werten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!