yield

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

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

import breeze.linalg.*

object yeild_Test {
  def main(args:Array[String]):Unit={
    val array =(1 to 10)

    //for循环的返回值必须要关键字yield,如果没有,即返回为空
    val array4 = for(i<-array) i*2
    println(array4) //()

    val array2 = for (i<- array) yield i*2
    println(array2.mkString(","))


    //for循环中的圆括号内还可以加更多的条件
    val array3 = for(i<-array if i%2 ==0) yield i*2
    println(array3.mkString(","))


  }

}

 




posted on 2021-01-04 15:33  happygril3  阅读(126)  评论(0)    收藏  举报

导航