我怎樣才能在訪問下面Scala代碼的文件名訪問文件的名稱:如何DIR
object FileMatcher {
private def filesHere = (new java.io.File("c:\\")).listFiles
def filesEnding(query: String) =
for (file <- filesHere; if file.getName.endsWith(query))
yield file.getName
def main(args: Array[String]) {
println(filesEnding(".js"))
}
}
我有一個.js文件,輸出是:[Ljava.io.File; @ df8f5e
我已經嘗試將'yield file'更改爲'yield file.getName',但結果相同。我假設println(filesEnding(「。js」))調用def'filesEnding'產生的任何toString方法,這是正確的嗎?
什麼是_「相同的結果」_?順便說一句,有一個'(''在'if'之後失蹤... –
@gilad hoch我認爲在scala中if語句有一個隱式的開始和結束括號,它們是可選的。我更新了我的問題,輸出結果是如果我使用括號作爲if語句的一部分,也是一樣的 –
在REPL中嘗試'if true 1 else 2',你會得到一個錯誤...所以'('&')'是必須的。當我添加它時,順便說一句,順便說一句,你是否指'println(filesEnding(「.js」).mkString(「\ t」,「\ n \ t」,「\ n」))?? –