generics - Kotlin:编译器无法为某些运算符推断出通用类型

标签 generics operator-overloading operator-keyword kotlin jvm-languages

为什么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
}

enter image description here

最佳答案

不幸的是,这是一个错误的结果:https://youtrack.jetbrains.com/issue/KT-10453

关于generics - Kotlin:编译器无法为某些运算符推断出通用类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34342741/

相关文章:

C# 使用 System.Type 作为通用参数

在两种类型之间进行转换的 Java 通用实用方法

c++ - 可以为 initializer_list 文字重载运算符吗?

c++ - C++中集合的运算符重载

MongoDB 索引和 $or 运算符

java - 通用示例未编译?

java - Java 泛型中的独立类型参数

c++ - 运算符++ : reference vs value return and unused argument

c++ - 在 C(也是 C++)中, '&' 运算符如何同时用作地址运算符和按位运算符?由于 C 不支持运算符重载

c++ - 如何在泛型类中用友元函数重载运算符?