2016-02-28 10 views
10

Einfache Frage, die ich nicht in der Lage gewesen bin, eine einfache Antwort für auf den Google zu finden: Was ist der Unterschied zwischen Groovy's und ForEach Loops?Was ist der Unterschied zwischen Groovy und forEach?

machte ich ein einfaches Beispiel und die Syntax und Verhalten scheinen identisch:

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

Beide Druck:

1 
2 

Das einzige Beispiel, das ich sowohl in der Sprache Groovy-Dokumentation scheint zu berühren der Unterschied zwischen lambdas und closures, aber ich kann das nicht auf die Beispiele beziehen, die ich versucht habe.

Danke

Antwort

19

Die erste Unterscheidung zwischen each() und forEach() ist, dass each() von Groovy GDK zur Verfügung gestellt, während forEach() von Java 8 vorgesehen ist (so ist es nicht verfügbar in früheren Versionen von Java.

Another Der Unterschied ist, dass each() einen Groovy-Verschluss akzeptiert, während einen Consumer akzeptiert. Aus Groovy ist dieser Unterschied nicht erkennbar, da Groovy coerces den Verschluss zu einem Verbraucher transparent macht.

+0

Ich hatte noch nicht einmal daran gedacht, dass es der Java ist! Danke, das macht Sinn. – orbfish

Verwandte Themen