第75讲:模式匹配下的For循环

For 循环中的模式匹配,可以过滤数据,数据处理方面使用。

   for(i<-List(1,2,3,4,5)) println(i) //实际上调用的是foreach

     for(index@"Flink" <- List("hadoop","spark","Flink")) println(index)//为参数起了个别名进行匹配

     for((language,"hadoop") <- Set("scala"->"spark","java"->"hadoop")) println(language)//给一个参数初始化进行匹配

     for((k,v:Int) <- List(("spark",5),("hadoop","bigdata"))) println(v) //通过类型进行匹配

运行结果为:

1
2
3
4
5
Flink
java
5

下面逐一进行分析。

第一个例子, for(i<-List(1,2,3,4,5)) println(i) 其实是foreach语句,代码如下:

  @inline override final
  def foreach[B](f: A => B) {
    var these = this
    while (!these.isEmpty) {
      f(these.head)
      these = these.tail
    }
  }

把List的所有变量 不加过滤的给 变量 i

第二个,for(index@”Flink” <- List(“hadoop”,”spark”,”Flink”)) println(index) ,就是匹配数据中含有 Flink 的数据,并将打印出来

第三个, for((language,”hadoop”) <- Set(“scala”->”spark”,”java”->”hadoop”)) ,匹配第2个元素为 hadoop的的key值

第四个, for((k,v:Int) <- List((“spark”,5),(“hadoop”,”bigdata”))) println(v) ,匹配第二个元素的数据类型为 Int的tuple,并将该tutple 的第一个元素打印出来

参考资料:

百度网盘:http://pan.baidu.com/share/home?uk=4013289088#category/type=0
微信号:18610086859
DT大数据微信公众账号:DT_Spark
DT大数据梦工厂交流群:462923555/418110145/437123764

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值