golang的map是无序的,不管是按照 key 还是value 默认都不排序, 如果要为 map 排序,需要将 key 拷贝到一个切片,对切片排序,然后使用切片的 for-range 方法打印出map中所有的 key 和 value。例如:
package main
import (
"sort"
"fmt"
)
func main(){
user := make(map[string]string)
user["name"] = "小红"
user["age"] = "18"
user["sex"] = "女"
var keys []string
for k := range user {
keys = append(keys, k)
}
//按字典升序排列
sort.Strings(keys)
//按字典降序排列
//sort.Sort(sort.Reverse(sort.StringSlice(keys)))
for _, k := range keys {
fmt.Println("Key:", k, "Value:", user[k])
}
}
输出
Key: age Value: 18
Key: name Value: 小红
Key: sex Value: 女