1. 程式人生 > >scala case class

scala case class

sign cas case 實現 error: last 一個 天然 聲明

當你聲明了一個 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