Ich bin es gewohnt, Anweisungen durch ein Semikolon aus Java abzugrenzen, daher mache ich das natürlich auch im Scala-Code. Ich habe auch das Gefühl, dass der Code leichter zu lesen ist, da offensichtlich ist, wo eine Anweisung endet und eine andere beginnt. Aber oft, wenn ich einen Teil des Scala-Codes auf SO poste, wird der Code bearbeitet, nur um Semikolons zu entfernen.
- Soll ich Semikolons verwenden oder nicht? Gibt es "offizielle" Richtlinien oder Codierungsstile?
- Gibt es Fälle, in denen Semikolons erforderlich sind, andernfalls ist der Code nicht eindeutig?
coding-style
scala
Petr Pudlák
quelle
quelle
Antworten:
Es gibt keinen offiziell "richtigen" Weg, dies zu tun, aber die meisten Praktizierenden lassen Semikolons weg, wo immer sie können (weshalb so viele Menschen Semikolons reflexartig entfernen).
Die Sprache ist sehr bemüht, Sie die Notwendigkeit vergessen zu lassen, Anweisungen überhaupt zu beenden. Leider gelingt dies nicht ganz , so dass es verschiedene komplizierte Situationen gibt, in denen Semikolons oder ein zusätzlicher Satz von Klammern oder ähnliche "Hinweise" erforderlich sind, um unerwünschte Semantik zu vermeiden. Solche Situationen sind fast selten genug, dass man normalerweise nicht darüber nachdenken muss. Es gibt unterschiedliche Meinungen darüber, ob dies bedeutet, dass Sie defensiv interpunktieren sollten (das denke ich) oder niemals interpunktieren sollten, bis Sie in Schwierigkeiten geraten (das denken die meisten Benutzer). Letztendlich hängt es davon ab, ob Sie sich als Abtrünniger oder als vorbildlicher Bürger identifizieren.
quelle
Wie viel möchten Sie die Sprachen verstehen, die Sie verwenden? Möchten Sie seine Stärken ausspielen oder nicht? Die Syntax von Scala fördert klaren und präzisen Code. Die wenigen Randfälle, in denen das Ausnutzen dieses Problems zu Problemen für den Scala-Parser führt, sind aufschlussreich (dh Sie lernen mehr über Scala, indem Sie auf sie stoßen und lernen, wie man sie vermeidet) und werden schrittweise behoben (z . B. Suffixnotation ). Die defensive Verwendung des Semikolons kann bedeuten, dass Sie nie etwas über diese Probleme lernen müssen, aber sehen Sie das wirklich als eine gute Sache an? Die Korrekturen für diese Probleme haben normalerweise andere Auswirkungen, aber Sie werden diese Möglichkeiten verpassen.
Eine weitere Überlegung ist, dass, wie Kilian zugibt, die meisten Scala-Entwickler Semikolons standardmäßig weglassen. Wie erwarten Sie, mit dem Code anderer Leute zu arbeiten, wenn Sie es vermeiden, die idiomatische Scala selbst zu verwenden? Sie werden es viel schwieriger finden, als es sein muss.
Ich kann nicht genug betonen, dass diese Funktionen des Scala-Parsers ausgewählt wurden, um sauberen, wiederverwendbaren und funktionalen Code (im fp-Sinne) zu fördern. Nehmen Sie als Beispiel die Syntax des Infix-Operators. Es ermutigt Entwickler, Klassen mit einfachen Einzweckmethoden auszustatten, die sich gut zusammensetzen lassen. Die Sammlungsbibliothek von Scala zeigt, wie schön das funktionieren kann. Klassisch ausgebildete Java-Entwickler, die dies akzeptieren, entwickeln tendenziell bessere Gewohnheiten und neue Denkweisen für ihren Code. Diejenigen, die sich an all die bekannten Punkte und Klammern halten, werden es verpassen. Ich behaupte, dass dies auch für diejenigen gilt, die zu schüchtern sind, um das Semikolon aufzugeben.
quelle