在Go 中,給定的Map,其中鍵為string 類型,值為int 類型,可以根據其值進行降序排序順序。
考慮以下內容map:
map[string]int{"hello": 10, "foo": 20, "bar": 20}
目標是將排序後的鍵值對印為:
foo, 20 bar, 20 hello, 10
為了實現這種排序,需要實作Go排序介面是必要的。這是透過定義Len()、Less() 和Swap() 函數來完成的:
func rankByWordCount(wordFrequencies map[string]int) PairList { pl := make(PairList, len(wordFrequencies)) i := 0 for k, v := range wordFrequencies { pl[i] = Pair{k, v} i++ } sort.Sort(sort.Reverse(pl)) return pl } type Pair struct { Key string Value int } type 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] }
透過實作排序介面並利用sort.Reverse 函數,在Go中,map 可以根據值進行有效排序,從而實現各種排序場景。
以上是如何以 Go Map 的整數值降序對 Go Map 進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!