如何在Scala中使用特殊类?

时间:2014-11-12 16:22:00

标签: scala pattern-matching

根据定义:

  

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时,主要区别是什么?

1 个答案:

答案 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.htmlhttp://www.scala-lang.org/old/node/258

有关案例类的更多详细信息