yield 作用
for 循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合。
Scala 中 for 循环是有返回值的:
- 被循环的是
Array,返回的就是Array - 被循环的是
List,返回的就是List - 被循环的是
Map,返回的就是Map
案例
循环的返回值
val arr = Array(1,20,300)
val resArr = for (item <- arr) yield item * 2
println(resArr.getClass.getSimpleName)
println(resArr.mkString(","))
说明:将遍历过程中处理的结果返回到一个新 Array 中
注意:开发中很少使用,这里为了演示功能
相当于下面代码
def main(args: Array[String]): Unit = {
val arr = Array(1, 20, 300)
val resArr = new Array[Int](arr.length)
for (i <- 0 until arr.length) {
val res = arr(i) * 2
resArr(i) = res
}
println(resArr.getClass.getSimpleName)
println(resArr.mkString(","))
}