java - 通用类型函数名之前的参数
问题描述
Kotlin中函数名前的<T>
类型参数有什么用?
例子:
fun <T> MutableList<T>.swap(index1: Int, index2: Int) {
val tmp = this[index1]
this[index1] = this[index2]
this[index2] = tmp
}
参考<T>
上面的第一个。
解决方案
它用于指示使用泛型而不是T
引用某些类型。
看看这个完全有效的例子
fun <String> MutableList<String>.swap(index1: Int, index2: Int)
现在这可以在 anyMutableList<*>
而不是 only上调用MutableList<String>
。如果你不在关键字<String>
后面写fun
,kotlin 怎么知道你实际上是在引用泛型而不是kotlin.String
?
您展示的示例也是如此。<>
之后只是引入了一个新的fun
泛型参数,否则 kotlin 会抱怨它不知道类型T