Scala学习笔记-04-控制结构 for

结构:

  for(变量 <- 表达式) 语句块

  变量 <- 表达式 叫做 生成器

for(i <- 1 to 10) println("---> i: " + i) # 步长为1

for(i <- 1 to 10 by 3) println("---> i: " + i) # 步长为3

  

“守卫表达式”(guard):通过if语句在被循环集合中进行过滤

for(变量 <- 表达式 if语句) 语句块

for(i <- 1 to 10 if i%3 == 0) println("---> i: " + i)

  

for 推导

将for循环的结果以集合形式返回,返回集合元素类型由生成器中的元素类型确定。

for(变量 <- 表达式) yield {语句块}// yield中必须写上要返回的变量

scala> for(i <- 1 to 10 if i%2==0) yield{i}
res27: scala.collection.immutable.IndexedSeq[Int] = Vector(2, 4, 6, 8, 10)

//仅仅打印,但是不写上要返回的变量,yield返回的集合为孔 scala> for(i <- 1 to 10 if i%2==0) yield{println("-->: " + i)} -->: 2 -->: 4 -->: 6 -->: 8 -->: 10 res28: scala.collection.immutable.IndexedSeq[Unit] = Vector((), (), (), (), ())
// 既打印,yield返回集合
for(i <- 1 to 10 if i%2==0) yield{ println("-->: " + i) i } -->: 2 -->: 4 -->: 6 -->: 8 -->: 10 res29: scala.collection.immutable.IndexedSeq[Int] = Vector(2, 4, 6, 8, 10)

  

----

posted @ 2020-02-12 16:23  后山前堂客  阅读(131)  评论(0)    收藏  举报