【scala学习笔记】for循环及关键字yield

scala中的for循环有个独有的特性,他是有返回值的。这个与java不同
如:

val arr = (1 to 10)
val arr2 = for(i <- arr) yield i*2

但是 for循环的返回值必须要关键字 yield上场。如果没有yield,即返回为空

代码运行截图

for循环中的圆括号内还可以加更多的条件

val filesHere = Map("java" -> 22, "scala" -> 6, "spark" -> 5)
val scalaFiles =for {  
  file <- filesHere  
  if file._1.startsWith("java")  
  if file._2 == 22
} yield file
println(scalaFiles)
运行截图

yield 关键字的简短总结:针对每一次 for 循环的迭代, yield 会产生一个值,被循环记录下来 (内部实现上,像是一个缓冲区).当循环结束后, 会返回所有 yield 的值组成的集合.返回集合的类型与被遍历的集合类型是一致的.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • scala学习笔记 第2章 变量和数据类型 基本数据 scala的核心数据为四种 :字面量、值、变量、类型 值使...
    485b1aca799e阅读 6,457评论 0 1
  • scala文档 包含内容 1基础 2控制结构和函数 3数组相关操作 4映射和元组 5类 6对象 7.包和引入(x)...
    zlcook阅读 4,574评论 0 3
  • 这篇讲义只讲scala的简单使用,目的是使各位新来的同事能够首先看懂程序,因为 scala 有的语法对于之前使用习...
    MrRobot阅读 7,987评论 0 10
  • 读《快学Scala 》一书的摘要 Scala 运行于JVM之上,拥有海量类库和工具,兼顾函数式编程和面向对象。 在...
    abel_cao阅读 5,065评论 0 8
  • 零个月 1 抱起直立,脚触及平面,出现原始踏步反射 2 听到突发大声响时,惊吓地出现双臂快速向外伸展的反射 3 仰...
    龟壳面阅读 3,709评论 0 0