当Java使用传值引用时,如何实现groovy右移重载操作符



心情不好。我试图实现一个类的>>右移位操作符,并希望这从类内输出一个变量

class SomeImplClass () {....
def rightShift (evalResult){
    evalResult = this.evaluate()
    println "rightShift : outputiing  $evalResult"
    this
}

和使用like

def res
def im = new SomeImplClass(); im >> res

因为res是按值传递的,这在右移的主体内工作,但是当你出来调用者时,res不会被设置-它仍然指向原始内存地址。

那么如何实现右移来改变外部作用域中变量所指向的值呢?

我能找到的唯一方法就是传递一个闭包作为右移的参数然后用你想要输出的值调用这个闭包

当闭包带有其生日上下文时,您可以处理传递给闭包的参数水,以设置闭包可以通过其上下文访问的变量

最新更新