var map1 = make(map[string]interface{})
map1["aaa"] = "1111"
map1["bbb"] = "222"
map1["000"] = "333"
fmt.Println(map1) // map[000:333 aaa:1111 bbb:222]
// 转成JSON
marshal, _ := json.Marshal(map1)
fmt.Println(string(marshal)) // {"000":"333","aaa":"1111","bbb":"222"}
// map排序
var keys []string
// 取出所有的key
for key, _ := range map1 {
keys = append(keys, key)
}
fmt.Println(keys) // [aaa bbb 000]
// 对key进行排序
sort.Strings(keys)
fmt.Println(keys) // [000 aaa bbb]
// 按排序后的key逐个取出
for i := range keys {
fmt.Println("key:", keys[i], "value:", map1[keys[i]])
// key: 000 value: 333
// key: aaa value: 1111
// key: bbb value: 222
}
var map2 = make(map[string]int, 10)
map2["aaa"] = 111
map2["bbb"] = 222
fmt.Println(map2) // map[aaa:111 bbb:222]
map3 := map[string]string{
"aa": "xxx",
"vv": "uuu",
}
map3["gg"] = "ooo"
fmt.Println(map3) // map[aa:xxx gg:ooo vv:uuu]
// 删除key,key不存在时不报错
delete(map3, "gg")
fmt.Println(map3) // map[aa:xxx vv:uuu]
fmt.Println(map3["vv"]) // uuu
fmt.Println(map3["vvuuuu"]) // ""
value, exist := map3["aa"]
// 判断key是否存在
if exist {
fmt.Println("存在key:aa, value:", value)
} else {
fmt.Println("不存在key:aa")
}
// 遍历map
for key := range map3 {
fmt.Println("key:", key, "value:", map3[key])
}
for key, value := range map3 {
fmt.Println("key:", key, "value:", value)
}
// map中k-v键值对数量
fmt.Println(len(map3)) // 2
// 复杂map操作
studentMap := make(map[string]map[string]string)
studentMap["tom"] = make(map[string]string)
studentMap["tom"]["name"] = "tom"
studentMap["tom"]["sex"] = "男"
studentMap["kevin"] = make(map[string]string)
studentMap["kevin"]["name"] = "kevin"
studentMap["kevin"]["sex"] = "男"
studentMap["lucy"] = make(map[string]string)
studentMap["lucy"]["lucy"] = "kevin"
studentMap["lucy"]["sex"] = "女"
fmt.Println(studentMap) // map[kevin:map[name:kevin sex:男] lucy:map[lucy:kevin sex:女] tom:map[name:tom sex:男]]
jsonStr, _ := json.Marshal(studentMap)
fmt.Println(string(jsonStr)) // {"kevin":{"name":"kevin","sex":"男"},"lucy":{"lucy":"kevin","sex":"女"},"tom":{"name":"tom","sex":"男"}}