2016-02-28 69 views
10

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

我做了一个简单的例子,在语法和行为似乎相同:

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

两个打印:

1 
2 

我看到无论是在Groovy语言文档的唯一例子似乎触摸lambdas和closures之间的区别,但我不能将它与我试过的例子联系起来。

谢谢

回答

19

each()forEach()之间的第一个区别是each()由Groovy的GDK提供,而forEach()是由Java的8(提供的,所以它不是在Java中的以前的版本可用。

另一个不同之处在于,each()接受Groovy关闭,而forEach()接受Consumer。从Groovy来看,这种差异并不明显,因为Groovy透明地对消费者关闭coerces

+0

我甚至没有想到这是Java的!谢谢,这是有道理的。 – orbfish