
Es gibt eine hitzige Debatte um einzelne Anweisungen und ob sie geschweifte Klammern haben sollten oder nicht.
In C++, C#, Java und Javascript ist eine einzeilige Anweisung ohne geschweifte Klammern gültig, manche nutzen diese Funktion, während andere es nicht tun.
Zum Beispiel
if(ifTrue)
MowTheLawn();
for(var index; index > 10; index++)
ChopWood();
foreach(var dollar in money)
BuyLollipop();
while(untilTheEnd)
Read();
Argumente gegen einzeilige geschweifte Klammern
Das Argument gegen geschweifte Klammern ist die knappere Syntax, es sind weniger Zeichen zu tippen, und es ist gültige Syntax. Warum sollte man es nicht nutzen?
Argumente für einzeilige geschweifte Klammern
Das Argument für geschweifte Klammern ist Konsistenz, weniger Bugs und natürlicheres mentales Parsen.
In einem Artikel von Jon Abrams mit dem Titel Single-line ‘if’ statements erklärt Jon, wie ein Defekt in Apples TLS-Implementierung als Folge einer einzeiligen if-Anweisung ohne geschweifte Klammern eingeführt wurde. Jon führt weiter aus, dass obwohl das Weglassen von geschweiften Klammern in einzeiligen Anweisungen knapper ist, die Vermeidung von Defekten wichtiger ist als Knappheit.
Jon schlägt einen Kompromiss vor, einzeilige Anweisungen zu erlauben, wenn sie wirklich in einer einzigen Zeile stehen:
if(ifTrue) MowTheLawn();
Ich teile Jons Gedanken, das Weglassen der geschweiften Klammern in einzelnen Zeilen ist den Nutzen, den es bietet, nicht wert. Es zwingt den Software-Ingenieur dazu, zwei Variationen gültiger Syntax zu berücksichtigen. Es mag nicht so schlimm erscheinen, aber es ist anstrengend, diese Entscheidung jedes Mal zu treffen, wenn man auf eine if-Anweisung stößt. Der nächste Effekt ist, dass der Ingenieur ein paar Tastenanschläge spart und die Belastung an zukünftige Leser weitergibt, ihren Code zu parsen.
Für die C# Software-Ingenieure hat Microsoft in ihren Coding-Konventionen Stellung bezogen, die geschweifte Klammern fordern.
Wenn wir geschweifte Klammern in allen Fällen verwenden, unabhängig von der Anzahl der Zeilen, ist sehr klar, was im Geltungsbereich liegt und was nicht. Dies macht den Code weniger fehleranfällig und konsistenter, obwohl manche diesen Punkt bestreiten mögen, finde ich ihn leichter zu lesen.
Autor: Chuck Conway ist spezialisiert auf Software-Engineering und Generative KI. Verbinden Sie sich mit ihm in den sozialen Medien: X (@chuckconway) oder besuchen Sie ihn auf YouTube.