2016-02-28 38 views
10

Domanda semplice a cui non sono stato in grado di trovare una risposta semplice per i googles: qual è la differenza tra i loop di Groovy e quelli di Everybody?Qual è la differenza tra Groovy each e forEach?

Ho fatto un semplice esempio e la sintassi e il comportamento sembrano identici:

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

Entrambi stampa:

1 
2 

L'unico esempio che vedo sia nella documentazione Groovy linguaggio sembra toccare la differenza tra lambda e chiusure, ma non posso riferirlo agli esempi che ho provato.

Grazie

risposta

19

La prima distinzione tra each() e forEach() è che each() è fornita da GDK Groovy, mentre forEach() è fornito da Java 8 (in modo che non è disponibile nelle versioni precedenti di Java.

altro differenza è che each() accetta una chiusura Groovy mentre forEach() accetta un Consumer. da Groovy, questa differenza non è evidente perché Groovy in modo trasparente coerces la chiusura ad un consumatore.

+0

Non avevo nemmeno pensato che quello fosse Java! Grazie, ha senso. – orbfish