scala for循环
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个字。