【笔记】Go语言的映射
前言
Go语言的映射(Map)学习笔记
声明空映射
- 键数据类型必须是支持
==
或!=
擦作符的数据类型
1 | var 映射名 map[键数据类型]值数据类型 |
值的类型可以是数组
1 | var 映射名 map[键数据类型][]数组类型 |
声明时指定映射长度
- 映射的容量是自动扩容的
- 映射的容量和长度始终相等
1 | 映射名 := make(map[键数据类型]值数据类型, 映射长度) |
1 | 映射名 := make(map[键数据类型]值数据类型) |
定义映射
- 在映射中存数据键必须唯一
1 | 映射名 := map[键数据类型]值数据类型{键1:值, 键2:值} |
添加或修改键值对
- 自动扩容
1 | 映射名[键] = 值 |
通过键获取值
- 得到的第一个变量表示存储的值
- 得到的第二个变量是布尔值,表示键是否存在
1 | value, exist := 映射名[键] |
删除键值对
- 如果执行删除操作时没有对应键,则不会执行任何操作,不会报错
1 | delete(映射名, 键) |
遍历映射
1 | for key,value := range 映射名 { |
函数参数传递
- 映射作为函数参数传递时是地址传递,形参可以改变实参的值
1 | func 函数名(变量名 map[键数据类型]值数据类型) { |
获取映射长度
- 映射的容量和长度相同,但是只能获取映射的长度,不能获取映射的容量
1 | len(映射名) |