【笔记】Go语言的字典

前言

Go语言的字典学习笔记

声明空字典

  • 键数据类型必须是支持==!=擦作符的数据类型
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(字典名)

完成

参考文献

哔哩哔哩——喔咔咔耶耶