scala for循环功能强大啊,for条件可以写各种表达式

通过一个demo来看一下,这个是一个讲yield关键字的demo:《Scala中的yield

object YieldDemo {

  private val files = (new java.io.File("./src/com/shang/yielddemo")).listFiles

  private def fileLines(file: java.io.File) =
    scala.io.Source.fromFile(file).getLines.toList

  def main(args: Array[String]): Unit = {
    println(files.size)

    for(file <- files){
      println(file.getName)
    }

    val lineLengths =
      for {
        file <- files
        if file.getName.endsWith(".txt")

        line <- fileLines(file)
        trimmedLine = line.trim
        if trimmedLine.matches(".*棒.*")
      } yield line + ":合计" + trimmedLine.length + "个字。"

    lineLengths.foreach(println)
  }
}

输出:

2
demotxt.txt
YieldDemo.scala
Let's go...太棒咯~:合计15个字。
Scala特棒!:合计8个字。

 

相关文章:

  • 2021-08-01
  • 2021-11-08
  • 2022-12-23
  • 2021-10-28
  • 2022-12-23
  • 2021-09-09
  • 2021-07-06
  • 2021-12-25
猜你喜欢
  • 2021-08-30
  • 2022-12-23
  • 2021-10-21
  • 2022-12-23
  • 2021-09-28
  • 2021-05-27
相关资源
相似解决方案