scala case class

Posted 指尖上的艺术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scala case class相关的知识,希望对你有一定的参考价值。

当你声明了一个 case class,Scala 编译器为你做了这些:

  • 创建 case class 和它的伴生 object

  • 实现了 apply 方法让你不需要通过 new 来创建类实例

  • 默认为主构造函数参数列表的所有参数前加 val
  • 添加天然的 hashCode、equals 和 toString 方法。由于 == 在 Scala 中总是代表 equals,所以 case class 实例总是可比较的
  • 生成一个 copy 方法以支持从实例 a 生成另一个实例 b,实例 b 可以指定构造函数参数与 a 一致或不一致
scala> val person = Person("xioaming","wang",2000)
person: Person = Person(xioaming,wang,2000)

scala> person.lastname
res0: String = xioaming

scala> person.lastname = "h"
<console>:12: error: reassignment to val
       person.lastname = "h"
                       ^

以上是关于scala case class的主要内容,如果未能解决你的问题,请参考以下文章

Scala 的 Case Classes 和 Pattern Matching

Scala class和case class的区别

Scala class和case class的区别

Scala之Case Class

scala case class

scala-case class