Scalaでmainメソッドが省略できるわけ

1 min read読了の目安(約300字

scalaのHelloWorldを紹介するサイトを見ていると、
当たり前のようにmainメソッドが省略されていたので調べてみた。

https://www.scala-lang.org/api/current/scala/App.html

明示的なmainメソッドは必要ありません。代わりに、クラス本体全体が「メインメソッド」になります。
argsは、現在のコマンドライン引数を配列として返します。

object Main extends App {
  Console.println("Hello World: " + (args mkString ", "))
}

App traitを継承することで、クラス本体全体が「メインメソッド」になるtraitがscalaには用意されているらしい。