Kod wewnątrz zamknięć może odnosić się do zmiennej it
.Zamknięcia zagnieżdżone Groovy z użyciem "go"
8.times { println it }
lub
def mywith(Closure closure) {
closure()
}
mywith { println it }
Z tego zachowania w pamięci nie można oczekiwać, aby wydrukować następujący kod 0011
2.times {
println it
mywith {
println it
}
}
I zamiast muszę napisać
2.times { i ->
println i
mywith {
println i
}
}
Moje pytanie brzmi: dlaczego zamknięcia bez parametrów zastępują zmienną it
, nawet jeśli nie są potrzebne.
Dzięki za formalną definicję –