4.4 Map

一、Map定义方式

  1. map[key类型]值类型{默认key: 默认值, ...}:

    m := map[string]string{
    	"name":    "LonelySnow",
    	"course":  "golang",
    	"site":    "imooc",
    	"quality": "notbad",
    }

    初始值后面一定加,

    map后面一定要加{}

  2. map[key类型]map[key类型]值类型:复合Map,值为另一个map

  3. 第二种创建Map的方式:

    m2 := make(map[string]string)

    备注:创建出来的map是空map(empty)

  4. 第三种创建Map的方式

    var m3 map[string]int

    备注:创建出来的map是空map(nil)

二、Map的遍历

  1. 使用range函数

    备注:不保证遍历顺序,如需排序,需要手动排序

  2. 可以使用len获取Map中元素的个数

三、Map的操作

  1. 根据key获取value

    备注:如果key输入错误造成key不存在的话,会得到一个空串为结果

    根据key获取value,可以得到是否获取成功的结果(上面定义为ok),获取到了为true,没有获取到为false

  2. 可以根据ok的特征修改代码

    备注:判断内容是否存在

四、删除元素

  1. 可以直接使用delete函数操作

    备注:可以直接清除内容

五、Map的key要求

  1. Map使用哈希表,必须可以比较相等

  2. 除了slice,map,function的内建类型都可以作为key

  3. Struct类型不包含上述字段,也可以作为key

Last updated

Was this helpful?