未看完,更多参见
在for中使用多个if过滤器
for (
file < - filesHere
if file.isFile;
if file.getName.endsWith(".scala")
) println(file)
如果使用的是小括号,就要在过滤器后面加分号来区分。如果使用大括号来环绕for语句,就不用加分号了
循环嵌套
def fileLines(file: java.io.File) =
scala.io.Source.fromFile(file).getLines.toList
def grep(pattern: String) =
for {
file < - filesHere
if file.getName.endsWith(".scala")
line < - fileLines(file)
if line.trim.matches(pattern)
} println(file + ": " + line.trim)
grep(".*gcd.*")
先遍历 filesHere
得到所有以 .scala
结尾的文件,再遍历这些.scala
结尾的文件,找到和传入的pattern
相符合的文件