第29讲:Case class和Case object代码实战解析
2016-02-14 16:43
453 查看
Case class是一种特殊的类,它们经过优化以用来模式匹配。
我们看如下例子
如果类不是case类,那么上述功能将无法完成。
case class提供了copy方法,可以创建一个与现有对象同值或者不同值的对象
这种case class 和case object 特别适用于消息传递系统。
我们看如下例子
abstract class Person case class Student(age: Int) extends Person case class Worker(age: Int,salary:Double) extends Person case object Shared extends Person object caseClassObject { def main(args: Array[String]): Unit = { def caseOps(p : Person)= p match { case Student(age) => println("the student age is :"+age) case Worker(_,sal) => println("the Worker's salary is :"+sal) case Shared => println("No perporty!!") } caseOps(Student(10)) caseOps(Worker(25,8000)) caseOps(Shared) } }运行结果
the student age is :10 the Worker's salary is :8000.0 No perporty!!可见使用模式匹配,可以获取创建对象时传入的参数
如果类不是case类,那么上述功能将无法完成。
case class提供了copy方法,可以创建一个与现有对象同值或者不同值的对象
val worker = Worker(36,20000) val worker1 = worker.copy() val worker2 = worker.copy(salary=10000) caseOps(worker2)worker2的年纪是36,而薪水是10000
这种case class 和case object 特别适用于消息传递系统。
相关文章推荐
- Android Native 绘图方法
- C#中struct和class的区别详解
- Ruby中case表达式详解
- VBS ArrayList Class vbs中的数组类
- 大家看了就明白了css样式中类class与标识id选择符的区别小结
- mysql中IFNULL,IF,CASE的区别介绍
- 深入了解PHP类Class的概念
- jquery 表单验证之通过 class验证表单不为空
- setAttribute 与 class冲突解决
- JavaScript中的类(Class)详细介绍
- javascript面向对象包装类Class封装类库剖析
- 详解js中class的多种函数封装方法
- jQuery使用hide方法隐藏指定元素class样式用法实例
- jQuery给多个不同元素添加class样式的方法
- jQuery点击改变class并toggle及toggleClass()方法定义用法
- jquery采用oop模式class类的使用示例
- JavaScript更改class和id的方法
- 一篇入门的php Class 文章
- 深入C++中struct与class的区别分析
- js中设置元素class的三种方法小结