首页 > 其他 > 详细

Scala学习笔记-08-样例类case 类

时间:2020-02-14 10:19:28      阅读:74      评论:0      收藏:0      [点我收藏+]

当定义一个类时,如果在class关键字前加上case关键字,则该类称为case类。

case类是一种特殊的类,它们经过优化以被用于模式匹配

Scala为case类自动重载了许多实用的方法,包括toString、equals和hashcode方法。

Scala为每一个case类自动生成一个伴生对象,其包括模板代码

  • 一个apply方法,因此,实例化case类的时候无需使用new关键字
  • 一个unapply方法,该方法包含一个类型为伴生类的参数,返回的结果是Option类型,对应的类型参数是N元组,N是伴生类中主构造器参数的个数。Unapply方法用于对对象进行解构操作
    • 在case类模式匹配中,该方法被自动调用,并将待匹配的对象作为参数传递给它

 

// 假设 定义一个case class:
scala> case class Car(brand:String, price:Int) defined class Car //则 编译器自动生成伴生对象: scala> object Car{ | def apply(brand:String,price:Int) = new Car(brand,price) | def unapply(c:Car):Option[(String,Int)] = Some((c.brand,c.price)) | } defined object Car

 

Scala学习笔记-08-样例类case 类

原文:https://www.cnblogs.com/wooluwalker/p/12306030.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!