Go语言的map底层使用hash表实现
map初始化
- 字面量初始化
m := map[string]int{
"jack": 100,
"rose": 90,
}
- 内置函数make()初始化(指定容量可以有效减少内存分配的次数)
m := make(map[string]int, 10)
m["apple"] = 2
m["banana"] = 3
map增删改查
m := make([string]string, 10)
v, ok := m["apple"] //查询
if ok {
m["apple"] = red //如果存在,修改
}else{
m["apple"] = green //如果不存在,新增
}
delete(m, "apple") //删除
空map
- len()可以查询map的长度,表示map中存储的键值对数
- 未初始化的map值为nil,在向值为nil的map添加元素时会触发panic
- 值为nil的map,长度与空map一致
- 操作值为nil的map没有意义,但是查询、删除操作不会报错
- delete(),没有返回值,在map为nil或者指定的键不存在的情况下,delete()不会报错,相当于空操作
v