码迷,mamicode.com
首页 > 其他好文 > 详细

for循环相关

时间:2015-05-15 13:23:43      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

循环语句是指令式编程的常见语句,Scala对其加以改进,成为适应函数式风格的利器。

for循环中的变量,没有val或者var,是因为变量的类型,完全是集合中的元素的类型。作用域持续到括号结束。

在scala中,没有continue和break。continue可以用if守卫来完成。

break有一下几种方式:

1.使用Boolean控制变量

2.使用函数return来模拟

3.使用Breaks对象。

for循环中可以定义任意多的生成器,用;隔开,每个生成器,都可以带一个守卫,if 加Boolean表达式,中间不用分号隔开。

For循环也可以有返回值的,返回的是一个List。在每一轮迭代中加入yield,yield后的值可以加入到List中。这种循环成为for推导式,一下是例子:    

注意yield前面不能加{}。(否则报错)

 1 val file = List("warn 2013 msg", "warn 2012 msg",
 2   "error 2013 msg", "warn 2013 msg")
 3 
 4 def wordcount(str: String): Int = str.split(" ").count("msg" == _)
 5 
 6 val counts =
 7   for (line <- file)
 8     yield wordcount(line)
 9 
10 val num = counts.reduceLeft(_ + _)
11 
12 println("wordcount:" + num)

注意,for推导式生成的元素类型和第一个生成器的类型,是兼容的。

                    

for循环相关

标签:

原文地址:http://www.cnblogs.com/wlwgcdxc/p/4505577.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!