根据官方issue 的更新显示,Golang 泛型 提案获得了通过。
提案是29天之前由核心开发者提出来的。
三小时前RSC 宣布状态变为Accepted
提案原文节选:
我们建议为Go添加对类型参数的支持。这将改变Go语言以支持一种泛型编程形式。
一份详细的设计草案已经发布,许多Go社区的成员都提供了意见。我们现在正采取下一步行动,建议将这个设计草案变成语言的一部分。
对拟议更改的高度概述:
函数可以有一个额外的类型 形参 列表,使用方括号,但其他方面看起来像普通的形参列表:}。
这些类型形参可用于常规形参和函数体中。
类型也可以有一个类型参数列表:
每个类型形参都有一个类型约束,就像每个普通形参都有一个类型一样:}。
类型约束是接口类型。
新的预先声明的name any是允许任何类型的类型约束。
用作类型约束的接口类型可以有一个预先声明的类型列表;只有匹配其中一种类型的类型参数才能满足约束。
泛型函数只能使用其类型约束允许的操作。
使用泛型函数或类型需要传递类型参数。
在一般情况下,类型推断允许省略函数调用的类型参数。