泛型
需要预先了解: 接口 包与模块:代码组织 泛型 Go 1.18 引入了泛型(generics):函数和类型可以带类型参数,在调用或使用时才确定具体类型。它解决的是"同一套逻辑要写很多遍,只有类型不同"的问题——比复制粘贴好维护,比 any + 类型断言更安全,也比接口更直接(不需要为每种类型实现方法)。 从重复代码出发 先看一个没有泛型的场景:为 int 和 float64 各写一遍求最小值的函数。 func MinInt(a, b int) int { if a < b { return a } return b } func MinFloat(a, b float64) float64 { if a < b { return a } return b } 两个函数除了类型以外完全相同。用泛型可以合成一个: func Min[T Ordered](a, b T) T { if a < b { ...



