Go 语言为什么需要泛型?
Go:为何带来泛型 介绍 [这是在Gophercon 2019上发表的演讲版本。视频链接可供使用。] 这篇文章是关于向Go添加泛型的意义,以及为什么我认为我们应该这样做。我还将介绍为Go添加泛型的设计可能的改变。 Go于2009年11月10日发布。不到24小时后,我们看到了关于泛型的第一条评论。(该评论还提到了我们在2010年初以panic和recover的形式添加到语言中的情况。) 在Go调查的三年中,缺乏泛型一直被列为该语言需要修复的三大问题之一。 为什么是泛型? 但是添加泛型是什么意思,为什么我们想要呢? 用Jazayeri等人的话来说:泛型编程能够以通用类型的形式表示函数和数据结构。 那意味着什么呢? 举一个简单的例子,我们假设我们想要反转切片中的元素。这不是很多程序需要做的事情,但并不是那么不寻常。 让我们说它是一个int slice。 func ReverseInts(s []int) { first := 0 last := len(s) for first < last { s[first], s[last] = s[last], s[first] ...


