一些map类型的操作
- 声明map
- 判断某个键是否存在
- 遍历map
- 删除某一个key
- map的扩容机制
- 实现map有序输出
// 1. 声明map
m := make(map[string]any)
m["name"] = "海上"
m["age"] = 18
fmt.Println(m) // map[age:18 name:海上]
// 2. 判断某个键是否存在
m := make(map[string]any)
m["name"] = "海上"
m["age"] = 18
value, ok := m["name"]
fmt.Println(value) // 海上
fmt.Println(ok) // true
value2, ok := m["email"]
fmt.Println(value2) // <nil>
fmt.Println(ok) // false
// 3. 遍历map
scoreMap := make(map[string]int)
scoreMap["张三"] = 90
scoreMap["小明"] = 100
scoreMap["王五"] = 60
for k, v := range scoreMap {
fmt.Printf("姓名:%v,分数:%d \n", k, v)
}
// 打印结果
// 姓名:王五,分数:60
// 姓名:张三,分数:90
// 姓名:小明,分数:100
// 4.删除某一个key
scoreMap := make(map[string]int)
scoreMap["张三"] = 90
scoreMap["小明"] = 100
scoreMap["王五"] = 60
fmt.Printf("删除前:%v \n", scoreMap) // 删除前:map[小明:100 张三:90 王五:60]
delete(scoreMap, "张三")
fmt.Printf("删除后:%v \n", scoreMap) // 删除后:map[小明:100 王五:60]
// 5.map的扩容机制
// https://blog.csdn.net/chenxun_2010/article/details/103768011
// 6.实现map有序输出
var m = make(map[int]string, 0)
m[1] = "1"
m[2] = "2"
m[3] = "3"
m[4] = "4"
m[0] = "0"
m[5] = "5"
// 收集所有的key
var sl = make([]int, 0)
for index := range m {
sl = append(sl, index)
}
// 排序所有key
sort.Ints(sl)
// 根据key顺序输出
for i := range sl {
fmt.Println(m[i]) // 0,1,2,3,4,5
}