Я нашел этот пример https://stackoverflow.com/a/5591274/4587961
но у него есть одно утверждение
def numbers = [ 5, 7, 9, 12 ]
numbers.eachWithIndex{ num, idx -> println "$idx: $num" }
Как выполнить несколько операторов
Например
def functionWithMultipleStateements(Object o, int index) {
int a = 2;
int b = 3;
println (a + b)
println o
println index
}
numbers.eachWithIndex{ num, idx -> functionWithMultipleStateements "$idx: $num" }
Это работает хорошо. Однако, когда я пытаюсь
numbers.eachWithIndex{ num, idx ->
{
int a = 2;
int b = 3;
println (a + b) + " " + "$idx: $num"
}
}
компиляция не работает. Я не хочу объявлять дополнительную функцию.





Следующий код:
[1,2,3,4,5,6,7].eachWithIndex { num, idx ->
int a = 2
int b = 3
println "${a + b} ${idx}: ${num}"
}
эмулирует ваш пример, работает и выдает следующий результат:
~> groovy solution.groovy
5 0: 1
5 1: 2
5 2: 3
5 3: 4
5 4: 5
5 5: 6
5 6: 7
~>
Вам не нужен второй уровень фигурных скобок. Кроме того, в вашем коде вы неправильно написали int как nt, вам не нужны точки с запятой в окончаниях строк, и в целом заводная интерполяция строк более читаем, чем добавление к строке с использованием +.