2009-09-25から1日間の記事一覧

Closureにメソッド足すにはExpandoMetaClass.enableGlobally()が必要

これはまぁ、{}でクロージャ作るたびにClosureのサブクラスが一つできるので当たり前なんですけど、エラーがちょっとわかりにくいんですね。メソッドが呼べない訳ではなくて、delegateが適切にセットされなくなる。 なんでdelegateを使わないメソッドを足す…

Closureリテラルのメンバにアクセスするときは、前の行にセミコロンが要る

ちょっと意味不明ですね。後置ifの例で行きます。 def executed = false; {->executed = true}.if('a' == 'A') assert executed == false; {->executed = true}.if('a'.equalsIgnoreCase('A')) assert executed == true なんか、セミコロンが不自然に入って…

Groovyで後置if

なんか後置ifがtwitter上で話題になってたのでやってみました。 文のうしろに「if ほげほげ」みたいに書くとほげほげが真の場合だけ文を実行してくれる、てやつですね。Groovy風にかくなら def executed = false; {->executed = true}.if('a' == 'A') assert…