Go的100天之旅-09Map
目录
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄
简介
哈希表在平时可以说是最常见的一种数据结构,Go内建了map
这种类型,就是哈希表的一种实现。声明一个map
类型的变量要指定它key/value
的类型,如下:
var m = map[keyType]valueType
其中key
的类型必须支持==比较运算符的数据类型
下面简单声明一个key
是string
类型值是int
类型的map
:
var m map[string]int
map
类型的变量,是一个指向哈希表的引用,类似指针或者slice
。上面声明的m
由于没有指向具体的哈希表,所以它是nil
的。通常声明一个map
后需要用内建的make
进行初始化:
m = make(map[string]int)
这时变量m
就指向了一个哈希表结构的数据,接下来我们可以对它进行操作了。
常见的操作
给一个map
中添加值:
m["a"] = 1
这里的a
可以是存在也可以不存在,如果存在就是替换这个a
的值,如果不存在就是设置一个a
的值为1
获取map
中的值:
i := map["a"]
如果键a
不存在,则返回0
,map
可以返回双值,判断key
是否存在:
i, ok := m["a"]
i
就是当前a
存的值,ok
就是键a
是否存在,如果存在ok
为true
不存在为false
len
可以获取map
当前的元素的个数:
n := len(m)
delete
可以删除map
中的值:
delete(m, "a")
遍历map
可以用range
:
for key, value := range m {
fmt.Println("Key:", key, "Value:", value)
}
map
初始化的是时候就可以赋值:
m := map[string]int{
"rsc": 3711,
"r": 2138,
"gri": 1908,
"adg": 912,
}

更多精彩