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

来源:互联网 发布:截拳道软件下载 编辑:程序博客网 时间:2024/06/06 19:10

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

0 0
原创粉丝点击