码迷,mamicode.com
首页 > 其他好文 > 详细

scala case class

时间:2017-12-21 16:02:29      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:str   object   blog   通过   一个   efi   copy   wan   assign   

当你声明了一个 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

标签:str   object   blog   通过   一个   efi   copy   wan   assign   

原文地址:http://www.cnblogs.com/xubiao/p/8080575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!