Go 语言学习 -8-map
2021-10-14 20:37:20
#
Go
Go语言中提供了映射关系容器map
,其内部使用散列表(hash
)实现。
map定义
map是一种无序的基于key-value
的数据结构,Go语言中的map是引用类型,必须初始化才能使用。
Go语言中 map
的定义语法如下:
1 | map[KeyType]ValueType |
其中,
- KeyType:表示键的类型。
- ValueType:表示键对应的值的类型。
map类型的变量默认初始值为nil,需要使用make()函数来分配内存。语法为:
1 | make(map[KeyType]ValueType, [cap]) |
其中cap表示map的容量,该参数虽然不是必须的,但是我们应该在初始化map的时候就为其指定一个合适的容量。
1 | func f1() { |
map也支持在声明的时候填充元素,例如:
1 | func f2() { |
常用方法
是否存在
Go语言中有个判断map中键是否存在的特殊写法,格式如下:
1 | value, ok := map[key] |
举个栗子:
1 | func f3() { |
遍历
Go语言中使用for range
遍历map。
1 | func f4() { |
删除
使用delete()
内建函数从map中删除一组键值对,delete()
函数的格式如下:
1 | delete(map, key) |
其中,
- map:表示要删除键值对的map
- key:表示要删除的键值对的键
举个栗子:
1 | func f6() { |
指定顺序遍历
1 | func f7() { |
元素为map的切片
map也可以作为切片的类型
1 | func f8() { |
值为切片的map
1 | func f9() { |