<T>
的用法是什么?在 Kotlin 函数名称之前键入参数?
例子:
fun <T> MutableList<T>.swap(index1: Int, index2: Int) {
val tmp = this[index1]
this[index1] = this[index2]
this[index2] = tmp
}
引用第一个<T>
以上。
我试图浏览 Kotlin docs关于泛型以及 Java Generics然而,他们大多只是在 2 日接触 <T>
不是第一个。
最佳答案
用于表示使用泛型而不是某种类型T
被引用。
看看这个完全有效的例子
fun <String> MutableList<String>.swap(index1: Int, index2: Int)
现在可以在任何 MutableList<*>
上调用它不仅是MutableList<String>
.如果你不会写 <String>
在fun
之后关键字,kotlin 怎么知道实际上你引用的是泛型而不是 kotlin.String
?
您展示的示例也是如此。 <>
在fun
之后只是引入了一个新的通用参数,否则 kotlin 会提示它不知道类型 T
关于java - 函数名前的泛型 <T> 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54880432/