美文网首页Scala编程与实践
【scala学习笔记】for循环及关键字yield

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

作者: 代码足迹 | 来源:发表于2016-12-18 23:08 被阅读60次

    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 的值组成的集合.返回集合的类型与被遍历的集合类型是一致的.

    相关文章

      网友评论

        本文标题:【scala学习笔记】for循环及关键字yield

        本文链接:https://www.haomeiwen.com/subject/vopzmttx.html