scala コマンドで *.scala ファイルをスクリプトのように実行する場合の、
クラス定義の書き方について質問させてください。
// a.scala
object Main {
def main(args: Array[String]) {
println("hello")
}
}
上の a.scala ファイルを scala コマンドで実行すると、main メソッドが呼び出されて
hello と表示されます。
$ scala a.scala
hello
次に a.scala にクラス Foo の定義を追加すると、今度は main メソッドが呼び出されなくなります。
// a.scala
class Foo {} // クラス定義を追加する
object Main {
def main(args: Array[String]) {
println("hello")
}
}
scala コマンドで実行してみると、main メソッドが呼ばれなくなりました。
$ scala a.scala
$ # 何も表示されない
以下の方法ですと、main メソッドが実行されることは確認しています。
- scalac コマンドでコンパイルしてから、scala Main を実行
- クラス Foo の定義を、Main の中で定義する
質問なのですが、Main の外でクラス Foo を定義して、
scala a.scala で main メソッドを呼ぶ方法はないのでしょうか?