由键值对组成的一种数据结构,通过key来对value进行操作 类型: map[keyType]valueType
map变量的声明和初始化
// 声明一个k为string类型,value为int类型的mapvar m map[string]int // m = nilm["a"] = 1 // panic: assignment to entry in nil map
map类型零值不能对其进行操作,会报错。所以必须对map类型变量进行显示初始化后才能使用
// 1. 先定义再初始化var m map[string]int // m = nilm = map[string]int{} // 空mapm["a"] = 100 // 添加元素fmt.Println(m) // map[a:100]// 2. 定义+初始化m := map[string]int{} // 空mapm["a"] = 100 // 添加元素fmt.Println(m) // map[a:100]// 3. make创建m := make(map[string]int) // 空map map[string]int{}m["a"] = 100 // 添加元素fmt.Println(m) // map[a:100]
查找元素
m := map[string]int{"a": 1, "b": 2, "c": 3}fmt.Println(m["c"]) // 3
判断元素是否存在
m := map[string]int{"a": 1, "b": 2, "c": 3}v, ok := m["a"]if !ok {// "a" 不存在map中}fmt.Println(v, ok) // 1 true
删除元素
m := map[string]int{"a": 1, "b": 2, "c": 3}delete(m, "a")fmt.Println(m) // map[b:2 c:3]
遍历map
m := map[string]int{"a": 1, "b": 2, "c": 3}// forfor k := range m {fmt.Println(k, m[k])}// for rangefor k, v := range m {fmt.Println(k, v)}
