, 需要在 fun 关键字 和 函数名 之间 , 使用 尖括号 注明 ;
代码示例 :
在本代码中 , logT 函数涉及到了两个泛型参数 , 传入的 匿名函数 参数类型为 (T) -> R...和 函数名 之间 , 使用 尖括号 注明 新的泛型参数 ;
class Student(_item: T) {
var item: T = _item
fun logT...return action(item)
}
在 尖括号 中声明 泛型参数 时 , 可以指定 泛型类型 的 约束 , 如 泛型类型 必须是某个类型的子类 ;
在下面的代码中 , Soldier...子类泛型对象 , ( 反之就会报错 )
如果 使用 out 关键字 , 则 范围小的子类泛型对象 赋值给 范围大的 父类泛型对象 ; ( 反之就会报错 )
使用了 泛型 out 协变 和 泛型 in...> 子类 , Producer 的泛型参数 FastFood 是 Food 的子类 , 在 Kotlin 中 , 可以将 Producer 类型赋值给 Producer