大数据系列修炼-Scala课程29
核心内容:
1、case class实战解析
2、case object实战解析
3、case class与case object在spark中的实际应用
1、scala中case class与case object的相关概念 |
1、scala中的case class与case object有两种功能:消息传递与模式匹配。case class与case object是scala为我们进行
模式匹配与消息传递而优化的一个语言特性,本身的使用非常简单。
2、在声明case class的过程中,若在扩展的属性前面没有加修饰符var与val,默认的修饰符为val,意味着在传递的过程中的属性是不可变的,因此
特别适合消息传递.
3、如果我们有一个共享的对象或全球唯一的单例对象,可以使用case object
4、当我们在声明case class的时候,case class的内部会有几个具体的实现:
1>每个成员默认情况下都会变成val,var一般不用
2>每个case class都会有伴生对象,里面都会有相应的apply、copy等方法,伴生对象可以帮我们构建出具体的case class
对象
3>在模式匹配的过程当中,我们可以从case class中提取出内容,提取的方法(on apply)也在伴生对象中.
on apply:apply方法的反操作,作用是从已经构建的对象中提取出内容,即从case class与case object中提取出内容
apply:用于构建对象,并传递相应的数值
5、在声明case class与case object的过程中,可以随意扩展一些属性与方法