2011-01-12 11 views

答えて

4

これは、Javaコードの平易な古いラベル付きブロックのようです。 Groovyのクロージャ構文ではありません。ブロック内のローカル変数をスコープできます。それが別の構文であれば、私はそれを避けるでしょう。

public void do(){ 
test:{ 
    String hello = "hello"; 
} 

anotherTest:{ 
    String hello = "hello"; 
} 
} 
+1

あなたが言うように、それは単なるラベル付きのコードブロックであり、クロージャを定義する別の方法ではありません。もちろん、OPはクロージャのマップを作成しようとしていたかもしれません: 'map = [test:{println 'Hi'}]'これは完全に有効なクロージャの定義です –

+1

追加の洞察をいただきありがとうございます。私は「Captain Obvious」として働いていて、何の助けもしていないかもしれないので、私はそれを投稿した後、私の答えをほとんど削除しました。 –

1

このようにすると、クロージャを定義するのではなく、コードブロックにラベルを付けることになります。

実際、this page statesとして、Groovyは古い学校のラベルをサポートしています。

である。それはまた大きな私に驚きです。

+0

リンクが死んでいるので、GroovyのGOTOラベルに関する詳細を提供します。 http://stackoverflow.com/a/4937416/352054 –

関連する問題