在Go语言1.18版本之前,编写通用代码是许多开发者的痛点。要么得为每种类型重复编写逻辑相似的代码,要么使用interface{}牺牲类型安全性。泛型的引入彻底改变了这一局面。
泛型,简单来说就是参数化类型。它允许我们在定义函数、结构体或接口时使用类型参数,在使用时再确定具体类型。
想象一下,你要编写一个加法函数。在没有泛型的情况下,你需要为每种数据类型编写单独的函数:
func AddInts(a, b int) int {
return a + b
}
func AddFloats(a, b float64) float64 {
return a + b
}