根据官方issue 的更新显示,Golang 泛型 提案获得了通过。

提案是29天之前由核心开发者提出来的。

三小时前RSC 宣布状态变为Accepted

提案原文节选:

我们建议为Go添加对类型参数的支持。这将改变Go语言以支持一种泛型编程形式。

一份详细的设计草案已经发布,许多Go社区的成员都提供了意见。我们现在正采取下一步行动,建议将这个设计草案变成语言的一部分。

对拟议更改的高度概述:

函数可以有一个额外的类型 形参 列表,使用方括号,但其他方面看起来像普通的形参列表:}。

这些类型形参可用于常规形参和函数体中。

类型也可以有一个类型参数列表:

每个类型形参都有一个类型约束,就像每个普通形参都有一个类型一样:}。

类型约束是接口类型。

新的预先声明的name any是允许任何类型的类型约束。

用作类型约束的接口类型可以有一个预先声明的类型列表;只有匹配其中一种类型的类型参数才能满足约束。

泛型函数只能使用其类型约束允许的操作。

使用泛型函数或类型需要传递类型参数。

在一般情况下,类型推断允许省略函数调用的类型参数。