> For the complete documentation index, see [llms.txt](https://wskdsgcf.gitbook.io/mastering-go-zh-cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wskdsgcf.gitbook.io/mastering-go-zh-cn/05.0/05.4.md).

# 05.4 Go 语言中的哈希表

严格来讲，**哈希表**这种数据结构会存储一至多个键值对，并使用一个哈希函数计算出存放正确值的桶或槽的索引。理想情况下，**哈希函数**应该将每个键分配到唯一的桶中，但通常你事先得有足够数量的桶。

一个好的哈希函数一定要能够输出均匀分布的哈希值，如果有多余的桶或者桶之间的基数差值较大，操作的效率就会变低。此外，这个哈希函数应该具有一致性，对于同一个键始终输出相同的哈希值，否则就不能准确定位需要的数据。

下图展示了一个拥有 10 个桶的哈希表。

![](https://2544064347-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LW1CVykBZtj4q8ChPkq%2F-LelHcf7dqeA4HFZyDbC%2F-LelHpzKUiSOvkVdh0vZ%2F05.4-1.jpg?generation=1557752670312189\&alt=media)
