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推导式
你可以用 变量<-表达式的形式提供多个生成器,用分号隔开。例如:
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推导式
相关文章推荐
- 黑马程序员--学习笔记(集合框架中的两个工具类,高级for循环,可变参数,静态导入)
- 模式匹配高级实战:嵌套的Case class之Scala学习笔记-21
- scala学习高级篇一
- scala学习高级篇一
- scala学习高级篇一
- Java基础第十七天学习日记_Collections和Arrays的常用方法、高级for循环、可变参数、静态导入
- scala学习高级篇一
- scala学习高级篇一
- 【scala 笔记(2)】 控制结构 -- 高级for循环和for推导式
- scala学习高级篇一
- scala学习笔记(高级特性1)
- Java学习笔记-高级for循环
- 大数据之scala高级语法学习
- scala学习高级篇一
- Scala学习整理[第二十二-二十三章 List和For循环]<Programming In Scala>
- scala学习:模式匹配高级实战:嵌套的Case class
- Scala学习日志(三)——轻便神奇的for推导式
- scala 学习(二)——for循环break
- scala学习高级篇一
- scala学习高级篇一