2016-10-18 62 views
0

头脑不好时,你如何实现groovy右移超载操作符。我试图从类中当java使用按值传递参考

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

落实>>右移位运算符的一类,并希望这个输出变量,使用像

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

如RES是按值传递,这在正确的转换体内工作,但是当你发送给调用者时,res不会被设置 - 它仍然指向原始的内存地址。

那么如何实现右移以更改外部范围中变量指向的值?

回答

0

只有我能找到这样做的方式是通过一个封闭的参数右移,然后打电话与要送出去

的值封口封带有其生日背景下,你可以处理你传给这个闭包的参数来设置闭包通过它的上下文访问的变量。