第77讲:模式匹配下的提取器动手构造实战学习笔记

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
scala77讲视频观看链接:
http://yun.baidu.com/s/1dD10KFZ
我的百度网盘共享的DT大数据梦工厂王家林老师第1-77讲的视频内容:http://pan.baidu.com/s/1qWK9CMo

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值