在“Scala编程”一书中,它说:
"您可以使用花括号而不是括号来围绕生成器和过滤器。使用花括号的一个优点是,当您使用括号时,可以省去一些所需的半冒号"。
我试图用这段代码做这件事,但似乎无法管理它。你能为我填写他们,这样我就可以看到这是怎么做的。
由于
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")); //I dont want to use this semi-colon
line<-fileLines(file)
if(line.trim.matches(pattern))
)
println(file +":" + line.trim)
val filesHere = new java.io.File(".").listFiles;
grep(".*gcd.*")
答案 0 :(得分:1)
您只需将for-comprehesion中的括号更改为花括号(正如本书所述):
def grep(pattern:String) = {
for {
file <- filesHere
if(file.getName.endsWith(".scala"))
line <- fileLines(file)
if(line.trim.matches(pattern))
} println(file +":" + line.trim)
}