Scala深入浅出实战经典:29,Case class和Case object代码实战解析

来源:互联网 发布:mac圣诞购买指南 编辑:程序博客网 时间:2024/06/05 17:19
package com.dt.scalaInAction.demo_029/** * Case class和Case object代码实战解析 * 注(1)case class中的成员默认下会是val的 只读的 这正适用于消息的传递 *  (2)每个case class会有一个伴生对象 里面有apply方法  其中它的伴生对象会为我们构建出case class具体的对象 */abstract class Personcase class Student(age: Int) extends Personcase class Worker(age: Int, salary: Double) extends Personcase object Shared extends Personobject Case_Class_Object {    def main(args: Array[String]): Unit = {        def caseOps(person: Person) = person match {            case Student(age) => println("I am " + age + "years old")            case Worker(_, salary) => println("Wow, I got " + salary)            case Shared => println("No property")        }                //Student这样的定义方式其实是调用了apply方法        caseOps(Student(19))  //I am 19years old        caseOps(Shared)       //No property                val worker = Worker(29, 10000.1)        val worker2 = worker.copy(salary = 19.95)        val worker3 = worker.copy(age = 30)    }}


以上内容是从王家林老师DT大数据课程第29讲的学习笔记和个人整理。

DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859

第29讲视频网站地址:http://pan.baidu.com/s/1hqF5xre

0 0
原创粉丝点击