当定义一个类时,如果在class关键字前加上case关键字,则该类称为case类。
case类是一种特殊的类,它们经过优化以被用于模式匹配
Scala为case类自动重载了许多实用的方法,包括toString、equals和hashcode方法。
Scala为每一个case类自动生成一个伴生对象,其包括模板代码
// 假设 定义一个case class:
scala> case class Car(brand:String, price:Int) defined class Car //则 编译器自动生成伴生对象: scala> object Car{ | def apply(brand:String,price:Int) = new Car(brand,price) | def unapply(c:Car):Option[(String,Int)] = Some((c.brand,c.price)) | } defined object Car
原文:https://www.cnblogs.com/wooluwalker/p/12306030.html