takafumi blog

日々の勉強メモ

Scala mainメソッド定義とコンパイル

環境   Scala 2.11.6 CentOS7.0

Scalaスケーラブルプログラミング」(コップ本)メモ

読了:第04章まで

■ main定義とコンパイル
mainメソッドの定義

アプリケーションのエントリーポイント、Javaでいうmainメソッドの定義。

// Something.scala
import Anything.one

object Something {
  def main(args: Array[String]): Unit {
    println(one(2))
  }
}

と定義する。Anythingは前の記事で使ったもの。参考までに以下のような簡単なもの。

// Anything.scala
class Anything {
}
object Anything {
  def one(i: Int): Int = {
    val ar = Array(1, 2, 3)
    ar(i)
  }
}

注意する点は

  • 引数は必ずargs: Array[String]である
  • 結果型は必ずUnitである
  • クラスではなくシングルトンオブジェクトで定義する
コンパイル

作成したアプリケーションのコンパイル方法。

scalac Anything.scala Something.scala

もしくは

fsc Anything.scala Something.scala

で行う。

scalacは 1. jarファイルをスキャンするなど初期作業を実行 2. コンパイル

fscは 1. 初期作業をおこない、ローカルサーバーデーモンを実行 2. コンパイル

という流れになり、scalacは1,2を毎回行うのに対し、fscは1を初回しか行わないため、より早くコンパイルが可能。

アプリケーションの実行

コンパイルファイルの実行方法。

scala Something
3

とすることでmain関数が実行される


takafumi-s.hatenablog.com