2019-go-17

字典的操作和约束

map

键值对

字典类型本质上是一个哈希表的特定实现,在这个实现当中,键和元素的最大不同在于,键的类型是受限制的,元素的类型却可以是任意类型的

哈希表中比较重要的一个过程 就是映射

键可以理解为元素的一个索引,在哈希表中通过键查找与它成对的那个元素

这种对应关系,在数学里就被称为映射 也是map这个词的本意

哈希表的映射过程就存在于对键–元素的增、删、改、查的操作之中

映射的第一步 就是把键值转换为哈希值

键值的类型 不可以是函数类型、字典类型和切片类型

键的值之间支持判等的操作

另外 键的类型是揭接口类型的,那么键值的实际类型也不能是上述的三种类型,否则在程序运行过程当中会引发panic

键的类型 优先选用数值类型和指针类型,类型的宽度越小越好

字符串类型的话 对键值的长度进行额外的约束

字典是引用的类型 声明而不初始化 值是nil
除了添加键–元素对,在一个值为nil的字典上做任何操作都不会引起错误

试图在一个值为nil的字典中添加键–元素对的时候,运行时系统会抛出一个panic