预定义的groovy变量列表

时间:2011-09-24 20:55:08

标签: syntax groovy

我是groovy的新手,我想知道在哪里可以找到预定义的完整列表 诸如 it 委托之类的常规变量?

我感兴趣的特殊事情是,如果有预定义的关键字为
对调用当前方法的对象的引用,例如:

5.times { print 5 - it}

使用这样的关键字应该是这样的:

5.times { print *keyword* - it }

所以问题是应该在那里使用关键字

P.S。:另一个例子:

MyObject myObject = new myObject();
myObject.getField(); // MyObject has method named getField
myObject.doJob ({ 
    ...
    ((MyObject)*keyword*).getField(); // instead of myObject.getField();
    ...
})

2 个答案:

答案 0 :(得分:4)

要获得所有实际关键字(比您想象的要少)和对象关键属性的良好列表,本文非常好:http://marxsoftware.blogspot.com/2011/09/groovys-special-words.html

如果您可以控制示例中的doJob方法,那么您应该设置闭包的delegate

def doJob(Closure closure) {
    closure.delegate = this
    closure.resolveStrategy = Closure.DELEGATE_FIRST
    // loop or whatever
    closure()
}

现在,在闭包中,您可以直接引用父对象上的任何属性,如下所示:

myObject.doJob ({ 
    ...
    getField()
    ...
})

Groovy Closures - Implicit Variables.

答案 1 :(得分:1)

你要这个吗?

int number = 5
number.times { print number - it }

希望这会对你有所帮助