とのマッチング:総合ステップバイステップガイドScalaのパターン私はスカラ座で プログラミングOdersky著の本からのScalaを学んでいるのgrep
このコード
object n3 {
def main(args: Array[String]) {
val filesHere = (new java.io.File(".")).listFiles
for (file <- filesHere if file.getName.endsWith(".scala"))
println(file)
}
}
は内のすべての.scalaファイルのリストを与えます私のフォルダ
./p6.scala
./m9.scala
./n1.scala
./m6.scala
./n4.scala
./m3.scala
./p5.scala
./m2.scala
./p9.scala
./d7.scala
./p7.scala
./m7.scala
./d5.scala
./d14.scala
./r12.scala
./test.scala
./m1.scala
./d12.scala
./n3.scala
./d3.scala
./m5.scala
./echoargs.scala
./m8.scala
./d8.scala
./d4.scala
./r11.scala
./d13.scala
./p2.scala
./p3.scala
./d2.scala
./n2.scala
./p1.scala
./d6.scala
./p8.scala
./p4.scala
./Rational.scala
./m4.scala
./d1.scala
./r13.scala
./d11.scala
私は
object n4 {
def main(args: Array[String]) {
val filesHere = (new java.io.File(".")).listFiles
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(".*m9.*")
}
}
次の例を試してみてください私は私が
trim.match
がdo.Iになっているのか理解していないようです
[email protected]:~$ scala n4
./n4.scala :grep(".*m9.*")
を得た
はそれが私が./m9.scala.Whatを変更する必要がありますのみ表示されるはずと思いましたか?コードは、ファイルに内容をチェックしている