根据定义:
Scala支持案例类的概念。 Case类是常规类,它们导出它们的构造函数参数,并通过模式匹配提供递归分解机制。
导出构造函数参数的常规类的含义是什么?
一般来说,我了解你如何使用它们。所以你可以有以下几点:
abstract Class Vehicle
case class Car extends Vehicle
case class Plane extends Vehicle
case class SpaceShip extends Vehicle
然后在每个Vehicle
上应用模式匹配,看看究竟是什么,但是这对所有类都不可能?
x match {
case List(x): something
case Stream(x): something else
}
那么在撰写case class
而不仅仅是class
时,主要区别是什么?
答案 0 :(得分:1)
案例类通过以下方式与普通类不同 -
1)您可以创建没有新关键字
的案例类实例2)您可以使用案例类进行模式匹配
3)案例类的构造函数参数被视为公共值,可以像 -
一样直接访问抽象类术语
案例类Var(name:String)扩展Term
val x = Var(“x”)println(x.name)
请参阅http://docs.scala-lang.org/tutorials/tour/case-classes.html 和http://www.scala-lang.org/old/node/258
有关案例类的更多详细信息