Kotlin:编译器不会为某些运算符推断泛型类型
Kotlin: Compiler doesn't infer generic type for some operators
为什么 Kotlin 的编译器无法通过某些运算符调用推断泛型类型?例如:
class Example {
operator inline fun <reified T : Any> unaryMinus(): T {
...
}
}
在主要方法中使用它...
fun main(args: Array<String>) {
val ex = Example()
val works: Boolean = ex.unaryMinus()
val doesntWork: Boolean = -ex
}
不幸的是,这是一个错误的结果:https://youtrack.jetbrains.com/issue/KT-10453
为什么 Kotlin 的编译器无法通过某些运算符调用推断泛型类型?例如:
class Example {
operator inline fun <reified T : Any> unaryMinus(): T {
...
}
}
在主要方法中使用它...
fun main(args: Array<String>) {
val ex = Example()
val works: Boolean = ex.unaryMinus()
val doesntWork: Boolean = -ex
}
不幸的是,这是一个错误的结果:https://youtrack.jetbrains.com/issue/KT-10453