go - 9.1 map
1. 定义
1. map是k-v数据结构,又称为字段或者关联数组,映射等 2. 基本语法 var map 变量名[keytype]valuetype key可以是bool,数字,string,指针,channel,接口,结构体,数组。通常为int和string。注意slice,map,function不可以,因为这几个没法用==来判断 value的类型跟key基本类似 3. map声明举例 var aa map[string]string 注意,声明map是不会分配内存的,初始化需要使用内置函数make,分配内存后才能赋值和使用 4. 注意事项 map使用前一定要make map的key不能重复 5. 三种使用方式 方式一: var a map[string]string a = make(map[string]string 10) a["no1"] = "松江" a["no2"] = "普陀" 方式二: cities := make(map[string]string) cities["no1"] = "北京" cities["no2"] = "上海" 方式三: heroes := map[string]string{ "hero1" : "松江", "hero2" : "黄埔", "hero3" : "浦东", } heros["hero4"] = "宝山" 6. 取出map里面的value heroes["hero1"] // 与Python相同
2. map的增删改查
1. 增加和更新 map["key"] = value // 有则更新,无则添加 2. 删除 delete(map, "key") // 存在就删除,不存在也不报错 3. val, findRes := cities["key"] if findRes { 。。。 }else{ 。。。 } 如果cities中有"key",则findRes为true,否则为false。(findRes可以使用其他自己想要的变量名代替)。val为对应的value
3. map遍历
1. map的遍历使用for-range的结构 for k, v := range map { ... }
4. map切片