概述
map的增删改查
- map 增加和更新
- map["key"] = value
- 如果 key 还没有,就是增加,如果 key 存在就是修改
cities := make(map[string]string) cities["no1"] = "北京" cities["no2"] = "天津" cities["no3"] = "上海" fmt.Println(cities) -- 因为 no3这个key已经存在,因此下面的这句话就是修改 cities["no3"] = "杭州" fmt.Println(cities)
- 输出结果:
- map 删除:
- 说明:
- delete(map,"key") ,delete 是一个内置函数,如果 key 存在,就删除该 key-value
- 如果 key 不存在,不操作,但是也不会报错
-- 演示删除 delete(cities, "no1") fmt.Println(cities) -- 当delete指定的key不存在时,删除不会操作,也不会报错 delete(cities, "no4") fmt.Println(cities)
- 细节说明
- 如果我们要删除 map 的所有 key ,没有一个专门的方法一次删除,可以遍历一下 key, 逐个删除
- 或者 map = make(...),make 一个新的,让原来的成为垃圾,被 gc 回收
//如果希望一次性删除所有的key //1. 遍历所有的key,如何逐一删除 [遍历] //2. 直接make一个新的空间 cities = make(map[string]string) fmt.Println(cities)
- map 查找:
- 案例演示:
//演示map的查找 val, ok := cities["no1"] if ok { fmt.Printf("有no1 key 值为%vn", val) } else { fmt.Printf("没有no1 keyn") }
- 如果 cities这个 map 中存在 "no2" , 那么 ok就会返回 true,否则返回 false
map的遍历
- 说明:map 的遍历使用 for-range 的结构遍历
- 案例演示1
//使用for-range遍历map cities := make(map[string]string) cities["no1"] = "北京" cities["no2"] = "天津" cities["no3"] = "上海" for k, v := range cities { fmt.Printf("k=%v v=%vn", k, v) }
- 输出结果;
- 案例演示2
studentMap := make(map[string]map[string]string) studentMap["stu01"] = make(map[string]string, 3) studentMap["stu01"]["name"] = "tom" studentMap["stu01"]["sex"] = "男" studentMap["stu01"]["address"] = "北京长安街" studentMap["stu02"] = make(map[string]string, 3) //这句话不能少!! studentMap["stu02"]["name"] = "mary" studentMap["stu02"]["sex"] = "女" studentMap["stu02"]["address"] = "上海黄浦江" for k1, v1 := range studentMap { fmt.Println("k1=", k1) for k2, v2 := range v1 { fmt.Printf("t k2=%v v2=%vn", k2, v2) } fmt.Println() }
- 输出结果:
- map 的长度
cities := make(map[string]string) cities["no1"] = "北京" cities["no2"] = "天津" cities["no3"] = "上海" fmt.Println("cities 有", len(cities), " 对 key-value")
- 输出结果:
最后
以上就是个性歌曲为你收集整理的Go map的增删改查及遍历的全部内容,希望文章能够帮你解决Go map的增删改查及遍历所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复