В чем разница между Groovy each и forEach?

простой вопрос, на который я не смог найти простой ответ на googles: в чем разница между циклами Groovy и forEach?

Я сделал простой пример и синтаксис и поведение кажутся идентичными:

    [1, 2].each { println it }
    [1, 2].forEach { println it }

как в печатном, так:

1
2

единственный пример, который я вижу в документации Groovy Language, похоже, затрагивает разницу между лямбдами и закрытиями, но я не могу связать это с примерами, которые у меня есть пытался.

спасибо

1 ответов


первое различие между each() и forEach() это each() предоставляется GDK Groovy, в то время как forEach() предоставляется Java 8 (поэтому он недоступен в предыдущих версиях Java.

другое отличие в том, что each() принимает на Groovy закрытия, а forEach() принимает потребитель. От Groovy эта разница не заметна, потому что Groovy прозрачно coerces закрытие для потребителя.