2011-09-24 100 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