(即变量 max)。...maxGenerics 泛型函数的一次调用,Go 对这段泛型函数调用代码的处理分为两个阶段,如下图所示:
我们看到,Go 首先会对泛型函数进行实例化(instantiation),即根据自动推断出的类型实参生成一个新函数...另外要注意,当我们使用相同类型实参对泛型函数进行多次调用时,Go 仅会做一次实例化,并复用实例化后的函数,比如:
maxGenerics([]int{1, 2, -4, -6, 7, 0})
maxGenerics...([]int{11, 12, 14, -36,27, 0}) // 复用第一次调用后生成的原型为func([]int) int的函数
好了,接下来我们再来看 Go 对类型参数的另一类支持:带有类型参数的自定义类型...F *P[T2, T1] // 不符合技术方案,但Go 编译器并未报错
}
5.2 使用泛型类型
和泛型函数一样,使用泛型类型时也会有一个实例化(instantiation)过程,比如:
var sl