takafumi blog

日々の勉強メモ

Scala シングルトンオブジェクト(singleton objects)

環境   Scala 2.11.6 CentOS7.0

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

読了:第04章まで

■ シングルトンオブジェクト(singleton objects)

Scalaは、Javaと違いクラスが静的メンバーを持たない。 その代わりにシングルトンオブジェクトを定義する事が可能。

// Anything.scala

// クラス定義
class Anything {
}
// シングルトンオブジェクト定義
object Anything {
  def one(i: Int): Int = {
    val ar = Array(1, 2, 3)
    ar(i)
  }
}

上記のように定義する。

これを

scala> import Anything.one
import Anything.one

scala> one(1)
res1: Int = 2

と呼ぶ事ができる。

注意する点は * objectで定義する * クラスと同名にする * クラスと同ファイルで定義する

また同名のクラスに対するシングルトンオブジェクトをコンパニオンオブジェクト、 逆にシングルトンオブジェクトと同名のクラスをコンパニオンクラス と呼ぶ。


takafumi-s.hatenablog.com