2011-09-24 99 views
1

我是新来的Groovy,我想知道我在哪里可以找到预定义
常规变量一样代表的完整列表,列表?预定义变量常规

,我很感兴趣的是,如果存在用于
从被调用的当前方法,其中所述参考对象的预定义参数,例如特定的事:

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(); 
    ... 
}) 

回答

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

你问这个?

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

希望这将帮助你

+0

其实不是,但我还是谢谢你 – tsds

+0

在我的问题的例子被简化,所以它是可以按照您对这个特定示例的建议进行操作,但我需要一个关键字来完成我在我的问题 – tsds

+0

中编写的内容,也许没有这样的预定义变量,但我希望找到一个 – tsds