Menu
CoddyTech

Go 中集合的惯用写法

本课属于 Coddy GO 学习旅程的“逻辑与流程”单元。第 31 课,共 68 课。

Go 没有像许多其他编程语言那样内置集合数据结构。不过,Go 开发者用映射创建了一种优雅的解决方案来模拟集合。这种模式已经非常常见,被认为是符合 Go 习惯的写法。

Go 集合惯用法使用映射,你只关心键,不关心值。由于你需要将某些内容存储为值,Go 程序员会使用空结构体 struct{}。基本写法如下:

var mySet map[string]struct{}

空结构体 struct{} 很特别,因为它占用 0 字节内存。对于只需要跟踪某个东西是否存在,而不想把内存浪费在无意义的值上的集合来说,它非常合适。

这种方法利用了映射键的基本特性:它们必须唯一。向集合中添加元素时,实际上是在向映射中添加键。映射会自动保证键的唯一性,因此你可以获得真正的集合语义。

在接下来的课中,你将学习如何使用这种符合 Go 惯用风格的模式来创建、操作和使用集合。这种技术在 Go 代码库中被广泛用于跟踪唯一项、实现算法,以及解决需要快速测试成员资格的问题。

亲手试试

这节课没有代码挑战。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Go 在线编译器