Реализация each
пытается вызвать метод iterator
своей цели безопасным для нуля способом .Если each
вызывается для нулевого объекта или объекта без метода iterator
, ничего не происходит.
Я не видел исходный код, но он может выглядеть примерно так:
Object each(Closure closure) {
if (this?.respondsTo("iterator")) {
def iterator = this.iterator()
while (iterator.hasNext() {
def item = iterator.next()
closure(item)
}
}
return this
}
§ В действительности этот метод, вероятно, написан на Java, а не на Groovy