web-dev-qa-db-ja.com

Groovy eachとforEachの違いは何ですか?

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

私は簡単な例を作りましたが、構文と動作は同じように見えます:

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

どちらも印刷:

1
2

Groovy言語ドキュメントで両方について私が見た唯一の例は、ラムダとクロージャーの違いに触れているようですが、これを私が試した例と関連付けることはできません。

ありがとうございました

17
orbfish

each()forEach()の最初の違いは、each()がGroovyのGDKによって提供されるのに対し、forEach()はJava 8(したがって、以前のバージョンのJavaでは使用できません。

もう1つの違いは、each()がGroovyクロージャを受け入れるのに対し、forEach()Consumer を受け入れることです。 Groovyからは、この違いは顕著ではありません。なぜなら、Groovyは透過的に coerces コンシューマーへのクロージャーだからです。

31
Emmanuel Rosa