scala语言yield配合for的用法实例

yield配合for的用法

话不多说见实例

package com.donews.reynold

/**
  * Created by reynold on 2017/3/23.
  */
object ScalaDemo {
  def main(args: Array[String]): Unit = {
    val t = Array("spark", "python", "java")
    val s = Set("spark", "scala", "java", "hadoop")
    val result = for {
      i <- s
      if t.contains(i)
    } yield {
      i.map(c => (c+1).toChar)
    }

    println(
      """
        |yield的用法总结
        |针对每一次 for 循环的迭代, yield 会产生一个值,被循环记录下来 (内部实现上,像是一个缓冲区).
        |当循环结束后, 会返回所有 yield 的值组成的集合.
        |返回集合的类型与被遍历的集合类型是一致的.
      """.stripMargin)
    println(result)
    println("遍历结果")
    result.foreach(println(_))
  }
}

结果:

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

 

posted @ 2017-03-23 16:05  Reynold.C  Views(4856)  Comments(1Edit  收藏  举报