l'essentiel est invisible pour les yeux

Monday, March 16, 2009

[Scala] オブジェクトの初期化のシンタックスシュガー

Scalaでは、オブジェクトの作成〜オブジェクトのメソッド呼び出しによる初期化のための、シンタックスシュガーが用意されている。コンストラクタでオブジェクトを作成して、その後オブジェクトのメソッドを呼び出してオブジェクトを初期化する事はよく例を一つ紹介。

Jettyのハンドラーの初期化をシンタックスシュガーでコーディングした例。ブロック内のスコープは、オブジェクト内でのスコープと同じになるので、メソッドを呼ぶ事ができる。


before:
val handler = new ResourceHandler
handler.setResourceBase("/webapp")

after:
val handler = new ResourceHandler { setResourceBase("/webapp) }


ほんの少し気持いい。