Nach dem ersten Blick auf die neue Hype-Sprache Scala fiel mir vor allem der unterdimensionierte IO-Funktionsumfang auf. Aufgrund der Kompatibilität zu Java kann man diesen Teil mit “nativem Code” implementieren. Schöner wäre es allerdings diese Funktionen auch in einem “scala-ischen” Stil umsetzen zu können, da insbesondere die IO-Funktionen in Java teilweise sehr umständlich nutzbar sind.
Erste Hilfe verspricht da die Community-Bibliothek scalax. Zur Veranschaulichung ein kleines Shell-Script zum Darstellen eines Verzeichnis-Inhaltes:
#!/bin/sh
exec scala "$0" "$@"
!#
import java.io.File;
import scalax.io.FileExtras;
def fileExtras = new FileExtras(new File("./"));
def walk = fileExtras.tree.elements;
walk.foreach(arg => println(arg));
Der Vorteil einen Walk zu benutzen ist dass er u.a. die Methode foreach bereitstellt, der man eine Callbackfunktion übergibt, die für jedes Element angewendet wird. Im Beispiel ist das die triviale Funktion println.