Case Classes and Pattern Matching
Value Equality
Compare two case class values by their fields.
Value Equality
ValueEquality.scala
case class Color(r: Int, g: Int, b: Int)
object Main {
def main(args: Array[String]): Unit = {
val red =
val a = Color(red, 0, 0)
val b = Color(255, 0, 0)
val same = a == b
println("a=" + a.toString)
println("b=" + b.toString)
println("same=" + same)
}
}
case class Color(r: Int, g: Int, b: Int)
object Main {
def main(args: Array[String]): Unit = {
val red =
val a = Color(red, 0, 0)
val b = Color(255, 0, 0)
val same = a == b
println("a=" + a.toString)
println("b=" + b.toString)
println("same=" + same)
}
}
case class Color(r: Int, g: Int, b: Int)
object Main {
def main(args: Array[String]): Unit = {
val red =
val a = Color(red, 0, 0)
val b = Color(255, 0, 0)
val same = a == b
println("a=" + a.toString)
println("b=" + b.toString)
println("same=" + same)
}
}
value-equality
Case classes compare by field values, not by object identity. Two instances with the same fields are equal, which makes them safe to compare directly.