Список предопределенных Groovy переменных - PullRequest
1 голос
/ 25 сентября 2011

Я новичок в Groovy, и мне интересно, где я могу найти полный список предопределенных
переменные типа это и делегат ?

Меня особенно интересует наличие предопределенного ключевого слова для
. ссылка на объект, из которого был вызван текущий метод, например:

5.times { print 5 - it}

с использованием такого ключевого слова это должно быть что-то вроде:

5.times { print *keyword* - it }

поэтому вопрос в том, какое ключевое слово 1016 * следует использовать там?

P.S .: другой пример:

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

Ответы [ 2 ]

4 голосов
/ 25 сентября 2011

Хороший список всех фактических ключевых слов (которых меньше, чем вы думаете) и свойств уровня объекта, похожих на ключевые слова, эта статья действительно хороша: 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 замыкания - неявные переменные.

1 голос
/ 25 сентября 2011

Вы просите об этом?

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

Надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...