Go语言中的迭代器和 iter 包
Go语言中的迭代器和 iter 包: 这篇文章转发的他人的,觉得写的很不错,自己收录了一遍。 很多流行的编程语言中都以某种方式提供迭代器,其中包括 C++、Java、Javascript、Python 和 Rust。Go 语言现在也加入了迭代器。iter 包是 Go 1.23 新增的标准库,提供了迭代器的基本定义和相关操作。 为什么需要迭代器 在 Go 1.18 引入泛型之后,便可以很方便的定义一些泛型容器类型来提升编码效率。 例如我们可以基于 map 类型定义了一个集合类型—— Set。 // Set 基于 map 定义一个存放元素的集合类型 type Set[E comparable] struct { m map[E]struct{} } // NewSet 返回一个 Set func NewSet[E comparable]() *Set[E] { return &Set[E]{m: make(map[E]struct{})} } // Add 向 Set 中添加元素 func (s... » read more