Skip to content
Scala

ケースクラス

equals/hashCode/toStringを自動生成する不変データクラス。

#case-class#data#immutable

Code

scala
case class Point(x: Double, y: Double)

val p1 = Point(1.0, 2.0)
val p2 = Point(1.0, 2.0)

// Auto-generated equality
p1 == p2  // true

// Auto-generated copy with changes
val p3 = p1.copy(y = 5.0)  // Point(1.0, 5.0)

// Destructure in pattern matching
p1 match {
  case Point(x, y) => s"($x, $y)"
}