Kotlin:为什么一元加/减不能从任务推断generics?

为什么一元加/减不能从派生中推断generics?

使用invoke ,例如: inline operator fun invoke(): T

你可以调用方法,并能够使用它…例如val foo: Long = this()

但是,以同样的方式使用unaryPlusunaryMinus不起作用。

方法签名: inline operator fun unaryPlus(): T

非工作电话: val foo: Long = +this

在这里输入图像说明

运算符必须声明为扩展函数或某个类的成员:

 inline operator fun  T.unaryPlus(): T = this 

那么你可以在任何T上使用它:

 fun main(args: Array) { data class Type(val value: Int) val foo = +Type(42) }