【Go学习笔记】8、map

HundredLee · · 630 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

map

  • 类似其他语言中的哈希表或者字典,以key-value形式存储数据
  • key必须是支持==或!=比较运算的类型,不可以是函数、map或slice
  • Map查找比线性搜索快很多,但比使用索引访问数据的类型慢100倍
  • Map使用make()创建,支持:=这种简写方式

  • map([keyType]valueType,cap) ,cap表示容量,可省略

  • 超出容量时会自动扩容,但尽量提供要一个合理的初始值
  • 使用len()获取元素个数

  • 键值对不存在时自动添加,使用delete()删除某键值对

  • 使用for range 对map和slice进行迭代操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//k int v string
var mapTmp map[int]string
mapTmp = make(map[int]string)
mapTmp[1] = "hundredlee"
fmt.Println(mapTmp)
//k int v map
var mapTmp map[int] map[int]string
mapTmp = make(map[int] map[int]string)
_, ok := mapTmp[0][0]
if !ok {
mapTmp[0] = make(map[int]string)
}
fmt.Println(mapTmp)
// slice v map + 迭代器
sliceMap := make([]map[int]string, 5)
for i := range sliceMap {
sliceMap[i] = make(map[int]string)
sliceMap[i][1] = "ok"
}
fmt.Println(sliceMap)

有疑问加站长微信联系(非本文作者)

本文来自:HundredLee's Blog

感谢作者:HundredLee

查看原文:【Go学习笔记】8、map

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

630 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传