水曜日, 4月 15, 2009

[Scala] スクリプト実行!

Javaで要求される杓子定規な、というか精緻な記述が省けるだけでもScalaを利用する価値はあるというものだが、さらにスクリプト実行(コンパイルして.classを作ってからじゃなく)できるとその価値はより高くなる。

以下、Windowsでスクリプト実行する場合(test.batなどとして保存されることを想定)。
::#!
@echo off
call c:\scala-2.7.4.final\bin\scala %0 %*
goto :eof
::!#

class HelloFunction {
def apply() = "hello"
def apply(name: String) = "hello " + name
}

// メソッド省略の例
val hello = new HelloFunction
println(hello()) // => "hello"
println(hello("Dean")) // => "hello Dean"

// コマンドライン引数処理の例
for(i <- 1 to (args.length)){
print(i + ",");
}