Я знаю, что это старый и уже отвеченный вопрос.Но это первое, что всплывает для «groovy do while», когда гуглится.
Я думаю, что общий значительный синоним do-while в Groovy может быть:
while ({
...
numRead > 0
}()) continue
Пожалуйста, рассмотрите приведенный выше пример.За исключением некоторых «избыточных» скобок, это довольно хорошо читаемый синтаксис.
И вот как это работает:
- внутри круглых скобок условия
while
замыкание определяется фигурной скобкойopen - замыкание выполняется встроенным с парой внутренних круглых скобок после закрытия фигурных скобок
- значение последней строки внутри замыкания - это значение, которое прервет цикл при ложном (возвращается иззакрытие)
continue
через некоторое время условие закрытия круглой скобки возникает только потому, что должно быть «что-то», любое скомпилируемое утверждение.Например, это может быть 0
, хотя continue
, кажется, подходит намного лучше.
РЕДАКТИРОВАТЬ: Не уверен, что это более новая версия Groovy или я пропустил это раньше.Вместо этого continue
точка с запятой тоже подойдет.Тогда это выглядит так:
while ({
...
numRead > 0
}());