シングルトンオブジェクト
https://docs.scala-lang.org/ja/tour/singleton-objects.html
Scala
では全てがオブジェクトで値である。
よって
Scalaのクラス
には
staticメソッド
に相当するものを作ることができない。
このユースケースをカバーするものとして、
object
キーワードで直接オブジェクトを宣言できる。
code:scala
package logging
object Logger {
def info(message: String): Unit = println(s"INFO: $message")
}
クラスと同じ名前のオブジェクトは
コンパニオンオブジェクト
と呼ばれ特別扱いされる。
プライベートなメンバ変数にアクセスできる
いわゆる
staticメソッド
に相当するものの置き場になる
apply
メソッドはコンストラクタ扱いされる