Groovy each和forEach有什么区别?

orb*_*ish 15 each foreach groovy

简单的问题,我无法在googles上找到一个简单的答案:Groovy的each和forEach循环之间有什么区别?

我做了一个简单的例子,语法和行为看起来完全相同:

    [1, 2].each { println it }
    [1, 2].forEach { println it }
Run Code Online (Sandbox Code Playgroud)

两个印刷品:

1
2
Run Code Online (Sandbox Code Playgroud)

我在Groovy语言文档中看到的唯一示例似乎涉及lambdas和闭包之间的区别,但我无法将其与我尝试过的示例联系起来.

谢谢

Emm*_*osa 28

之间的第一区别each()forEach()each()由Groovy的GDK提供,而forEach()由Java的8提供的(所以它不是用Java的早期版本可用.

另一个区别是each()接受Groovy闭包同时forEach()接受Consumer.从Groovy开始,这种差异并不明显,因为Groovy透明地强制关闭消费者.