第77讲:模式匹配下的提取器动手构造实战学习笔记
模式匹配下的提取器(extractor)的动手实战
List匹配时背后使用了提取器的方式
object :> {
def unapply[A] (list: List[A]) = {
//提取器最关键的方法
Some((list.init, list.last))
//返回内容非常关键,和原先默认相反
//list.init是最后一个元素以前的若干个元素的集合
//当匹配时unapply方法就会被回掉,传入参数是要匹配的对象
//返回对象是要匹配出来的具体内容,即结构后的数据
}
}
object Extractor_Advanced {
def main(args: Array[String]) {
(1 to 9).toList match{case _ :> 9 => println("Hadoop")}
//_ :> 9表示最后一个元素是9
(1 to 9).toList match{case _ :> 8 :> 9 => println("Spark")}
//匹配器的组合,(1 to 8) (1 to 9)两个集合
(1 to 9).toList match{case _ :> (:> (_,8), 9) => println("Flink")}
//(1 to 9)作为参数传递给unapply,返回的是具体匹配的内容
//:> (_,8)是第一部分,9是第二部分
}
}
以上内容是从王家林老师DT大数据课程第77讲的学习笔记。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
scala第77讲视频观看链接:
http://yun.baidu.com/s/1dD10KFZ
我的百度网盘共享的DT大数据梦工厂王家林老师第1-77讲的视频内容:http://pan.baidu.com/s/1qWK9CMo