映射(map)
映射是一个k/v键值对的无序集合(一些情况下也称为关联数组,哈希表或者字典),通常通过它所关联的键来查寻其所对应的值,如下
var x map[string]int
声明一个map类型的变量,需要使用map
关键字,括号里面标识的是key
的类型,最后面是值的类型
key所允许的类型
- string
- int
value所允许的类型
就像数组(array),切片(slice)一样,map的元素赋值操作也是通过括号进行的
var x map[string]int
x["key"] = 10
如果运行以上代码,将会抛出一个错误,原因是因为map在进行元素赋值操作的时候需要进行初始化操作,因此我们可以进行如下修改
x := make(map[string]int)
x["key"] = 10
y := make(map[int]int)
y[1] = 10
make
方法创建并初始化一个map,因此进行赋值操作就不会抛出错误,当map的key为int类型时,它与数组非常的相似,但是它们存在一下不同
- map的长度是可变化的,当创建的时候它的长度为0,当往里面添加元素时,其长度会增加,而数组的长度是不可变的
- map是非连续,对于数组来说,当存在
x[1]
的时候,必定会存在x[0]
map的常规操作
增加或者修改一个元素
m[key] = elem
获取一个元素
elem = m[key]
删除一个元素
delete(m, key)
检测一个元素是否存在
elem, ok := m[key]