scala教程:yield作用

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(","))
}