it
- неявная переменная, которая предоставляется в замыканиях.Это доступно, когда у замыкания нет явно объявленного параметра.
Когда замыкание используется с методами сбора, такими как removeIf
, it
будет указывать на текущий элемент итерации.
Это как если бы вы заявили следующее:
List<Integer> integers = [1, 2, 3]
for(Integer it: integers) {print(it)}
Когда вы используете each
вместо этого (и это пример), вы можете получить it
неявно при условии:
integers.each{print(it)} //it is given by default
Или
integers.removeIf{it % 2 == 0} //it is the argument to Predicate.test()
it
будет последовательно принимать значения 1
, 2
и 3
по ходу итераций.
Можно, конечно, переименовать переменную с помощьюобъявление параметра в замыкании:
integers.each{myInteger -> print(myInteger)}
В этом случае Groovy не предоставляет неявную переменную it
. Документация содержит более подробную информацию