Scala-for与if

未看完,更多参见
在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相符合的文件

推荐阅读更多精彩内容