因爲GoLang Map 內部存儲是無序的,當須要按順序得到map存儲的key -value值時,應該對遍歷出來的結果進行從新排序;app
在go 1.8版本後,提供的slice sort 功能使排序更簡單:spa
package main import ( "fmt" "sort" ) func main() { m := map[string]int{ "something": 10, "yo": 20, "blah": 20, } type kv struct { Key string Value int } var ss []kv for k, v := range m { ss = append(ss, kv{k, v}) } sort.Slice(ss, func(i, j int) bool { return ss[i].Value > ss[j].Value // 降序 // return ss[i].Value < ss[j].Value // 升序 }) for _, kv := range ss { fmt.Printf("%s, %d\n", kv.Key, kv.Value) } }