您的位置:首页 > 其它

Scala学习第九弹 高级for循环和for推导式

2016-08-18 11:32 375 查看
Scala中的for循环比java和c++中的功能强大的多,这次介绍一下for循环的高级特性

你可以用 变量<-表达式的形式提供多个生成器,用分号隔开。例如:

for(i <- 1 to 3;j <-2 to 5) print(sum = i*j+” “)

//打印1 2 3 2 4 6 3 6 9

每个生成器都可以带一个守卫,以if开头的Boolean表达式,

for(i <- 1 to 3;j <-2 to 5 if i!= j) print(sum = i*j+” “)

//打印2 3 2 6 3 6

注意:if前没有分号

你可以使用任意多的定义引入循环中的使用的变量:

for(i<-1 to 5;a=i+2;j<-a+2 to 10) print(sum =i*j)

//打印5 6 7 8 9 10 12 14 16 18 20 21 24 27 30 32 36 40 45 50

如果for循环的循环体以yield开始,则这个循环会构造一个集合,每次迭代生成集合中的一个值

for(i<- 1 to 5) yield i%3

//生成 Vector(1,2,0,1,2,0,1,2,0,1)

这类循环叫做for推导式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  scala