欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Go 映射

程序员文章站 2022-05-13 20:59:43
...

映射的内部实现和基础功能

映射是一种数据结构,用于存储一系列无序的键值对,实现基于键的快速检索数据

1.内部实现

映射是一个存储键值对的无序集合

a. 可以使用类是处理数组和切片的方式迭代映射中的元素
b. 映射是无序的,每次迭代映射的顺序都有可能不一致
注:无序的原因是映射的实现使用了散列表

散列表

映射的散列表包含一组桶:
a. 在存储删除或者查找键值对的时候,所有的操作都要选择一个桶。

操作时将指定的键传递给映射的散列函数,就能选中对应的桶
散列函数的作用是生成一个索引,并将键值对分布到所有的可用的桶里
随着映射存储的增加,索引分布越均匀,访问键值对的速度就越快

2. 创建和初始化

a. make函数声明映射

// 创建一个键为string值为int的映射
rain_dict := make(map[string]int)

// 输出结果:
// == rain_dict:  map[]

b. 字面量声明映射

映射的初始长度很根据初始化时的键值对的数量来确定

1) 映射的键可以使任意值
切片、函数以及包含切片的结构类型,由于具有“引用语义”,不能作为键
2) 值的类型可以是内置的类型,也可以是可以用 == 运算符作比较的 结构类型

// 创建一个映射,并初始化数值
rain_dict_1 :=map[string]string{"china": "BeiJing", "america":"NewYork"}

// 输出结果:
// == rain_dict_1:  map[america:NewYork china:BeiJing]

参考:

Go语言程序设计

相关标签: Go映射 映射