Groovy Clousureは、Methodではないので全ての処理が終わらないと終

Groovy Clousureは、Methodではないので全ての処理が終わらないと終了しない件

GCRのGroovy勉強会に行ってきました。

今回特にためになったのは、Closureの挙動について、その終了の仕方がMethodとは異なること。

つまりClosureはMethodsではないので、もらった入力は全て処理する。

 [1,2,3].each {print it; return } この出力は"123" 全て処理してから終わる
 for (it in [1,2,3]) {print it; return}   この出力は"1" ひとつの出力で終わる

もう一つ確認

1.upto(3) { print it ; if (it>1) return} この出力は"123" 全て終わってからreturnする。


returnを処理の途中で発生させても、println it の部分の処理は10まで進みます。