2016-02-28 9 views
10

私はグーグルのための簡単な答えを見つけることができなかったという簡単な質問:Groovyのeachとfor eachループの違いは何ですか?GroovyとforEachの違いは何ですか?

私は簡単な例を作って、構文と動作は同じように見える:

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

両方の印刷を:

1 
2 

私はGroovyの言語のドキュメントに両方の参照のみの例では、上に触れているようですlambdasとclosureの違いですが、私は試した例にそれを関連付けることはできません。 forEach()はJava 8(によって提供されている間

は、あなたが

答えて

19

each()forEach()間の最初の区別はeach()はGroovyのGDKによって提供されることである感謝ので、それは、Javaの以前のバージョンでは使用できません。

別の相違点は、each()はGroovyクロージャを受け取り、forEach()Consumerを受け入れます。GroovyからGroovyは透過的にコンシューマへのクロージャーをcoercesクローズするので、この違いは目に見えません。

+0

私はそれがJavaのものであるとは考えていませんでした!ありがとう、それは理にかなっている。 – orbfish

関連する問題