0
これは、ディレクトリ内のすべてのクラスファイル名を返すScalaコードです。Scalaのシーケンスコレクション
import scala.collection.mutable._
import java.io.File
def getFiles(directory:String) = {
val files = ArrayBuffer[String]()
val d = new File(directory)
if (d.exists && d.isDirectory) {
(for (i <- d.listFiles.filter(_.getName.endsWith(".class"))) // <---
yield i.getName.replace(directory, "")).toList
} else {
List[String]()
}
}
listFiles
方法は、ファイルの種類のクラスのコレクションを返し、私は文字列の新しいコレクションを取得するためにfor
とyield
を使用する必要がありました。私はコードが醜いと思うし、このコードのようなこのパターン(既存のものから新しいタイプのコレクションを生成する)には良い方法があるかもしれませんが、私はそれにエラーメッセージがあります。
d.listFiles.filter(_.getName.endsWith(".class")))
.foreach(yield _.getName.replace(directory, "")).toList