go

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切片

原文地址:https://www.cnblogs.com/JackShi/p/14165841.html