Dalam Go, peta yang diberikan di mana kunci adalah jenis rentetan dan nilai adalah jenis int boleh diisih berdasarkan nilainya dalam menurun pesanan.
Pertimbangkan perkara berikut peta:
map[string]int{"hello": 10, "foo": 20, "bar": 20}
Matlamatnya adalah untuk mencetak pasangan nilai kunci yang diisih sebagai:
foo, 20 bar, 20 hello, 10
Untuk mencapai pengisihan ini, pelaksanaan Go sort antara muka adalah perlu. Ini dilakukan dengan mentakrifkan fungsi Len(), Less(), dan 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] }
Dengan melaksanakan antara muka isihan dan memanfaatkan jenis.Fungsi songsang, peta boleh diisih dengan berkesan mengikut nilainya dalam Go, membolehkan pelbagai senario pengisihan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Peta Go mengikut Nilai Integernya dalam Tertib Menurun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!