【笔记】Go语言的映射

前言

Go语言的映射(Map)学习笔记

声明空映射

  • 键数据类型必须是支持==!=擦作符的数据类型
1
var 映射名 map[键数据类型]值数据类型

值的类型可以是数组

1
var 映射名 map[键数据类型][]数组类型

声明时指定映射长度

  • 映射的容量是自动扩容的
  • 映射的容量和长度始终相等
1
映射名 := make(map[键数据类型]值数据类型, 映射长度)
1
映射名 := make(map[键数据类型]值数据类型)

定义映射

  • 在映射中存数据键必须唯一
1
映射名 := map[键数据类型]值数据类型{键1:值, 键2:值}

添加或修改键值对

  • 自动扩容
1
映射名[键] = 值

通过键获取值

  • 得到的第一个变量表示存储的值
  • 得到的第二个变量是布尔值,表示键是否存在
1
2
3
4
5
6
7
value, exist := 映射名[键]

if exist {
fmt.Println("键存在")
} else {
fmt.Println("键不存在")
}

删除键值对

  • 如果执行删除操作时没有对应键,则不会执行任何操作,不会报错
1
delete(映射名, 键)

遍历映射

1
2
3
for key,value := range 映射名 {
...
}

函数参数传递

  • 映射作为函数参数传递时是地址传递,形参可以改变实参的值
1
2
3
func 函数名(变量名 map[键数据类型]值数据类型) {
...
}

获取映射长度

  • 映射的容量和长度相同,但是只能获取映射的长度,不能获取映射的容量
1
len(映射名)

完成

参考文献

哔哩哔哩——喔咔咔耶耶