gpt4 book ai didi

generics - Kotlin:为什么一元加/减不能从分配中推断出泛型?

转载 作者:行者123 更新时间:2023-12-02 12:44:02 25 4
gpt4 key购买 nike

为什么一元加/减不能从分配中推断出通用类型?

使用invoke,例如:inline operator fun <reified T> invoke(): T
您可以调用该方法并可以使用它,例如val foo: Long = this()
但是,以相同的方式使用unaryPlusunaryMinus不起作用。

方法签名:inline operator fun <reified T> unaryPlus(): T
非工作 call :val foo: Long = +this
enter image description here

最佳答案

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

inline operator fun <reified T> T.unaryPlus(): T = this

然后,您可以在任何 T 上使用它:
fun main(args: Array<String>) {
data class Type(val value: Int)
val foo = +Type(42)
}

关于generics - Kotlin:为什么一元加/减不能从分配中推断出泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36818852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com