您的位置:首页 > 其它

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

2015-08-03 23:37 302 查看
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(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) ,就是匹配数据中含有 [b]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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: