Go官方博客最近发表了一篇介绍新特性“泛型”的文章,作者是两位重量级人物——RobertGriesemer和IanLanceTaylor,内容基于他们在2021年GopherCon上的Presentation。▲左:Go语言的设计者之一RobertGriesemer;右:Go1.18,前不久由Go泛型的主要设计者IanLanceTaylor正式发布,增加了对泛型的支持。据说泛型是Go开源以来最大的一次Change。泛型是一种独立于所使用的特定类型的编程范例,允许在函数和类型的实现中使用一组类型中的任何一种。泛型为Go添加了三个重要的新东西:函数和类型的“类型参数”将接口类型定义为类型的集合,包括没有方法类型推断的接口类型:在大多数情况下,“类型参数”(typearguments)类型参数可以是调用泛型函数时省略。函数和类型现在有“类型参数”(typeparameters)。类型参数列表看起来像一个普通的参数列表,除了它使用方括号而不是圆括号。从用于浮点值的基本非泛型Min函数开始:funcMin(x,yfloat64)float64{ifx
