2

以下のクラスでは、メイン メソッドが正しく定義されていませんか? Eclipse から実行しようとすると、scala プログラムとして実行するオプションがありません。削除するfilesEnding(".txt")と、プログラムを実行できます。

object FileMatcher {

  private def filesHere = (new java.io.File(".")).listFiles()

  private def filesMatching(matcher: String => Boolean) = 
    for(file <- filesHere; if matcher(file.getName))
        yield file

  def filesEnding(query: String) = filesMatching(_.endsWith(query))

  def main(args:Array[String]) = {
      filesEnding(".txt")
  }

}
4

1 に答える 1

8

Main は type を返す必要がありUnitます。しかし、 を返さfilesEndingUnit、ファイルを返します。最も簡単な修正方法は、 を削除して=、メソッドからの戻り値がデフォルトの になるようにすることUnitです。

def main(args: Array[String]) {
// ...
}
于 2012-10-11T20:25:54.267 に答える