1

使用の違いは何ですか

teams.each(){ team->
//iterate through each team
}

teams.each { team->
//iterate through each team
}

最初のものには、それぞれの後と閉鎖の前にブラケットがあることに注意してください。アプリケーションで負荷テストを行っていたところ、最初のアプリケーションを使用すると、この呼び出しで待機しているスレッドがいくつかあることに気付きました。しかし、2番目のケースでは、すべてがスムーズに機能します。

ここで何が違うのか知りたいです。

4

1 に答える 1

4

何も、それらは同じものです。Groovyでは、関数の最後のパラメーターがクロージャである場合、中括弧の外側で発生する可能性があります。たとえば、次のようになります。

[1,2,3].inject( 0 ) { acc, it -> acc + it }

[1,2,3].inject( 0, { acc, it-> acc + it } )

同じことです。グルーヴィーな書き方の通常の方法は、例では中括弧を見逃すか、inject上記の例では中括弧の外側にクロージャーを配置することです。

于 2012-04-13T09:59:56.320 に答える