2016-02-28 86 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