Go에서 키가 문자열 유형이고 값이 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에서는 지도를 해당 값에 따라 효과적으로 정렬할 수 있으므로 다양한 정렬 시나리오가 가능합니다.
위 내용은 Go 맵을 정수 값을 기준으로 내림차순으로 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!