[DSL/Groovy]with句を使うと、メソッドのレシーバを省略しr書ける。[DSL/Groovy]クロージャの説明。(実際Groovyのクロージャは使いやすいと思う。#javaonejpクロージャの呼び出しは、普通のメソッド呼び出しっぽく書ける。実は上の呼び出し記法はシンタックシュガーで正式にはcallメソッドを呼ぶ。↑引数宣言を省略すると、暗黙変数itとして、1つだけ引数を受け取れる。[DSL/Groovy]演算子オーバロード。Groovyではほとんどの演算子は、対応するメソッド呼び出しのシンタックスシュガーに過ぎない。メソッドを独自に実装すれば演算子の振る舞いが変更できる。振る舞いは、aのクラスのplusメソッドをオーバライドすると書き換えられる。[DSL/Groovy]Groovyのswitch文は強力。intに限らずどんなオブジェクトでもマッチングできる。#javaonejpJava7or8で、Stringによるswitchに対応しますが、Groovyならあらゆるオブジェクトを条件式に使えます。Groovyのビルダはツリー構造を持つ情報を定義して、それで何かを出力/実行するのにとても便利。HTML/XMLとか。SwingBuilder、AntBuilderも便利。書くだけで、↓のHTML構造が生成できます。レポート生成スクリプトとかでも便利。[DSL/Groovy]メタプログラミング:ExpandoMetaClass。既存クラスにメソッドが追加できる。#javaonejpクラスのmetaClassにクロージャを追加すると、クラスにメソッドを追加したことになります。