[Golang 基础] Map 数据类型
译者:baiyutang
原文:https://nikhilvaidyar1997.medium.com/golang-basics-maps-79bb9a3d90a7
嗨,大家好。今天,我将会聊一聊 Go 中的 Map 概念,它用来存储数据以键值对形式。要简单介绍的是内建 Map 类型是实现了公共的数据结构 - 哈希表。
什么是哈希表
哈希表是以关联形式存储数据的数据结构。通过从每个键生成唯一值的哈希函数映射到数组位置的数据。
哈希表主要的优势是高效,一个元素的平均访问时间是 O(1),所以它提供了更快的查找、添加和删除。哈希函数生成并从 key 中寻址。这个将 key 映射到适当位置的过程叫散列。
好了,已经给哈希表数据结构有了足够的说明。回到我们的主题。Go 的 Map 数据类型意味着它映射 key 到 value,并存储数据。
Map 的实现
Map 类型像切片或指针,是引用类型。一个空的 Map 表现如同 Go 中的 nil
数据类型。而如果你只声明了一个 nil
Map,它将返回一个如下的空 map:
如果我们尝试向 nil Map 中写入,它将引起运行时 panic 错误。这是错误截屏:
你也可以去这个链接去核实:https://play.golang.org/。Golang 提供了一个运行、测试或多重操作的地方。
在这个案例中,我们已经使用 var
关键字声明了 Map,我们可以使用内建函数 make
去避免运行时 panic 错误。
我们也可以这样初始化一个 Map:
版权声明: 本文为 InfoQ 作者【baiyutang】的原创文章。
原文链接:【http://xie.infoq.cn/article/8afbc3bfe588c065934624fea】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论