case class

  • 内容を変えることの出来ないclass。
  • 原則としてコンストラクタでメンバを定義する。
  • 様々な便利メソッドを持っており、Scalaでは構造体の様に使われる。
  • デフォルト引数や、名前付き引数が使える。
case class Person(
  name: String,
  age: Int = 0
)

val tom = Preson("Tom", 20)     // (name="Tom", age=20)
val jack = Person(name="Jack")  // (name="Jack", age=0)
val jack2 = jack.copy(age=22)   // (name="Jack", age=22)

自動メソッド

case class

copy

object

tupled

unapply