标签: groovy foreach each
简单的问题是我无法在google上找到一个简单的答案:Groovy的each和forEach循环之间有什么区别?
我做了一个简单的例子,语法和行为看起来完全相同:
[1, 2].each { println it } [1, 2].forEach { println it }
两者都打印:
1 2
我在Groovy语言文档中看到的唯一一个例子似乎涉及lambda和闭包之间的区别,但我无法将其与我尝试过的例子联系起来。
谢谢
答案 0 :(得分:26)
each()和forEach()之间的第一个区别是,each()由Groovy的GDK提供,而forEach()由Java 8提供(因此它是在以前版本的Java中不可用。
each()
forEach()
另一个区别是each()接受Groovy闭包,而forEach()接受Consumer。从Groovy来看,这种差异并不明显,因为Groovy透明地coerces对消费者的封闭。