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学习第九弹 高级for循环和for推导式
最新推荐文章于 2023-12-21 15:12:30 发布