Tag: 操作符重载

Kotlin – 函数的调用操作符重载

我正在学习Kotlin – 运算符重载 我想了解(例如)运算符重载如何为函数的invoke()函数工作 预先测试 Kotlin的扩展函数 fun exampleOfExtensionFunction() { fun Int.randomize(): Int { return Random(this.toLong()).nextInt() } val randomizedFive = 5.randomize() println(“$randomizedFive”) } 打印: -1157408321 在Kotlin中,函数可以用types声明为variables fun exampleOfFunctionType() { val printNumber: (number: Int) -> Unit printNumber = { number -> println(“[$number = ${number.toString(16).toUpperCase()} = ${number.toString(2)}]”) } printNumber(1023) } 打印: [1023 = 3FF = 1111111111] Kotlin允许运算符用扩展和成员函数重载 fun […]

为“Number Classes”重载+和+ =运算符

我想为封装简单Number的类创建扩展函数。 例如DoubleProperty 。 我遇到了这个问题,我不能同时重载+和+=运算符。 我不想创建一个行为,通过以下测试: class DoublePropertyTest { lateinit var doubleProperty: DoubleProperty @Before fun initialize() { doubleProperty = SimpleDoubleProperty(0.1) } @Test fun plus() { val someProperty = doubleProperty + 1.5 assertEquals(someProperty.value, 1.6, 0.001) } @Test fun plusAssign() { val someProperty = doubleProperty doubleProperty += 1.5 //error if + and += are overloaded assert(someProperty === doubleProperty) […]

在Kotlin中调用操作符&运算符重载

我了解了Invoke操作符, a()相当于a.invoke() 有什么更多关于调用操作员,然后请解释。 此外,我没有得到任何Invoke运算符重载的例子。 调用操作符是否可以重载? 如果可能的话,任何人都可以请示例解释有关Invoke操作符重载。 我没有得到任何关于这个。 提前致谢。