Verbesserte Kompilierprüfung mit Parens
Die Autoren von Spray empfehlen, dass runde Parens eine bessere Kompilierprüfung ermöglichen. Dies ist besonders wichtig für DSLs wie Spray. Durch die Verwendung von Parens teilen Sie dem Compiler mit, dass er nur eine einzige Zeile erhalten soll; wenn Sie ihm also versehentlich zwei oder mehr geben, wird er sich beschweren. Dies ist bei geschweiften Klammern nicht der Fall. Wenn Sie zum Beispiel irgendwo einen Operator vergessen, wird Ihr Code kompiliert, Sie erhalten unerwartete Ergebnisse und möglicherweise einen schwer zu findenden Fehler. Das folgende Beispiel ist konstruiert (da die Ausdrücke rein sind und zumindest eine Warnung ausgeben), macht aber den Punkt deutlich
method {
1 +
2
3
}
method(
1 +
2
3
)
Die erste kompiliert, die zweite ergibt error: ')' expected but integer literal found.
der Autor wollte schreiben 1 + 2 + 3
.
Man könnte argumentieren, dass es bei Methoden mit mehreren Parametern und Standardargumenten ähnlich ist; es ist unmöglich, bei der Verwendung von Parens versehentlich ein Komma zur Trennung der Parameter zu vergessen.
Wortbedeutung
Ein wichtiger, oft übersehener Hinweis zur Ausführlichkeit. Die Verwendung geschweifter Klammern führt unweigerlich zu ausführlichem Code, da der Scala-Style-Guide eindeutig besagt, dass schließende geschweifte Klammern in einer eigenen Zeile stehen müssen: http://docs.scala-lang.org/style/declarations.html "... die schließende Klammer steht in einer eigenen Zeile unmittelbar nach der letzten Zeile der Funktion." Viele automatische Formatierer, wie z.B. Intellij, führen diese Umformatierung automatisch für Sie durch. Versuchen Sie also, runde Klammern zu verwenden, wenn Sie können. Z.B.. List(1, 2, 3).reduceLeft{_ + _}
wird:
List(1, 2, 3).reduceLeft {
_ + _
}