Go 语言基础 - 字典(map)
字典(map)
是一种底层基于哈希的,高效的数据结构。map
存储的是键值对,以key
为键,计算出哈希值后,取出对应的value
。
定义
map
的使用方式很简单,声明时指定key
的类型、value
的类型,便可以得到一个map
:map[key_type]value_type
,其中 key_type 是键的类型, value_type 是值的类型。
1 | // 声明式,定义了一个键为string,值为int |
设值
对key
的赋值,可以直接用=
:
1 | map2 := map[string]string{} |
取值
从map中取值,也是使用=
,但是要注意的是,键不存在的情况,需要进行判断处理。
1 | val, ok := map2["name2"] |
在上面的例子中,因为name2这个key在map2中不存在,所以我们取到的val
是空的,在某些场景下,如果没有对是否存在进行校验,那么可能存在预期外的异常或逻辑错误。
ok
的类型是布尔值,表示是否真正取得了数据。根据它,我们可以知道对应的key在字典中是否真的存在。
使用range遍历
使用关键字range
,我们可以对map进行遍历:
1 | map4 := map[string]int{ |
如果你运行了上面这段代码,你会发现输出的顺序不是a,b,c。因为在map的实现里,key是hash的结构存储,而不是顺序的,这也是它存储高效的原因。
删除值
如果我们想删除某一对key/value
,可以使用内置的delete
方法:
1 | map4 := map[string]int{ |
比如上面的代码,将删除map4
中key
为b
的键值对。
- 本文链接:https://keepmoving.ren/golang/map/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!