今天我们来继续学习模式匹配下的提取器实战

 

object :> {
  def unapply[A] (list: List[A]) = {
    Some((list.init,list.last))
  }
}

object test_Match {
  def main(args:Array[String]){
    (1 to 9 ).toList match {case _ :> 9 => println("hadoop")}
    (1 to 9 ).toList match {case x :> 8 :> 9 => println("spark")}
    (1 to 9 ).toList match {case :>(:>(_,8),9) => println("flink")}
  }
}

 

我们首先定义了一个模式匹配器,并定义了其中的unapply方法。

在main方法中,我们定义了一个1到9的list,然后通过模式匹配 _  :> 9是可以跟我们的List(1....9)进行匹配的,输出hadoop

同理,x :> 8 :> 9 和 :>(:>(_,8),9)也一样可以进行匹配。

 

 

分享下更多的scala资源吧:

百度云盘:http://pan.baidu.com/s/1gd7133t

微云云盘:http://share.weiyun.com/047efd6cc76d6c0cb21605cfaa88c416

360云盘: http://yunpan.cn/cQN9gvcKXe26M (提取码:13cd)

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark

关注微信账号,获取更多关于scala学习内容