【发布时间】:2020-08-13 06:58:45
【问题描述】:
出于某种原因。我无法为运算符 ++ 和 -- 定义扩展运算符函数,同时能够为相同的运算符定义成员运算符函数。
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
object _12_IncrementAndDecrementOperatorsCantBeExtensionFunctions_Test {
private class X {
operator fun inc(): X = X()
operator fun dec(): X = X()
}
private class Y
/*Compile-time | 'operator' modifier is inapplicable on this function: receiver must be a supertype of the return type*/
private operator fun Y.inc(): Y = Y()
/*Compile-time | 'operator' modifier is inapplicable on this function: receiver must be a supertype of the return type*/
private operator fun Y.dec(): Y = Y()
}
我错过了什么吗?这种限制有什么原因吗?
【问题讨论】:
标签: kotlin operator-overloading increment decrement extension-function