kann jemand helfen mir diesen Code zu verstehen, aus ...Code Erklärung für scala Platzhalter Aufruf benötigt
object FileMatcher {
private def filesHere = (new java.io.File("C:/scalaTestcode")).listFiles
private def fileMatching(matcher : String => Boolean) =
{
for(file <- filesHere; if matcher(file.getName)) yield file
}
def filesEnding(query:String) =
fileMatching {_.endsWith(query) }
def filesContaining(query:String) =
fileMatching {_.contains(query)}
def fileRegex(query:String)=
fileMatching {_.matches(query)}
def main(args : Array[String])
{
(filesEnding(".scala").toArray).foreach(println)
}
}
Dieser Code korrekt funktioniert und wie erwartet. Aber was ich versuche zu verstehen, wie fileesEnding Methode mit "_" arbeitet. Ich meine, wenn ich von main aus rufe ich mit Query als Parameter in filesEnding-Methode, die die Funktion an die fileMatching mit "_" übergibt. , dass "_" in fileMatching mit einem String gefüllt wurde, aber wenn ich versuche, mit einem anderen String fileMatching durchzuführen, gibt es einen Kompilierungsfehler, wenn "_" in diesem Fall einen String bedeutet, der mit einem String oder by arbeitet "_" wir sagen dem scala-Compiler, dass dies von woanders/bei der Implementierung aufgefüllt wird.
Jede Detail Erklärung klar sein wird .... Vielen Dank ...