头版Folia Daily Briefing
← 返回头版
科技互联网

Go语言提议为标准库增加通用集合类型

Go Collections工作组提出了一项提案,旨在为Go 1.28版本的标准库container包补充通用集合数据结构[1]。该工作组成立于2025年末,由Jonathan Amsterdam、Alan Donovan、Robert Griesemer等7人组成[1]。

提案涵盖多个新类型,包括container包下的hash.Map、hash.Set、set.Set、ordered.Map以及heap/v2.Heap等[1]。这些数据结构的设计将充分利用Go 1.18引入的泛型功能和Go 1.23的迭代器特性,为标准库建立一套通用的集合API使用约定[1]。其中,container/ordered.Map的当前实现采用平衡二叉树,但设计本身未对具体的数据结构实现做出强制性要求[1]。

针对这一提案,相关功能已分别提出了多个提案编号,包括#70471(hash/maphash.Hasher)、#69559(container/hash.Map)、#80584(container/hash.Set)、#69230(container/set.Set)、#77052(container/mapset)、#60630(container/ordered.Map)和#77397(container/heap/v2.Heap)[1]。其中,hash/maphash.Hasher已在go1.27中发布[1]。该提案还引入了三个抽象约束接口类型——_AbstractCollection、_AbstractMap和_AbstractSet,用于实现跨具体集合类型的通用逻辑[1]。


Go语言泛型集合标准库API设计Go 1.28