Кодовые замыкания могут ссылаться на переменную it
.
8.times { println it }
или
def mywith(Closure closure) {
closure()
}
mywith { println it }
С учетом этого поведения вы не можете ожидать, что следующий код будет напечатан 0011
2.times {
println it
mywith {
println it
}
}
И вместо этого я должен написать
2.times { i ->
println i
mywith {
println i
}
}
Мой вопрос: почему закрытие без параметров переопределяет переменную it
, даже если она не нужна.