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"
                       ^


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM