
単一文に波括弧を付けるべきかどうかについて、熱い議論が交わされています。
C++、C#、Java、Javascriptでは、波括弧なしの単一行文は有効であり、この機能を活用する人もいれば、そうでない人もいます。
例えば
if(ifTrue)
MowTheLawn();
for(var index; index > 10; index++)
ChopWood();
foreach(var dollar in money)
BuyLollipop();
while(untilTheEnd)
Read();
単一行波括弧に反対する論拠
波括弧に反対する論拠は、より簡潔な構文であること、タイプする文字数が少ないこと、そして有効な構文であることです。なぜそれを活用しないのでしょうか?
単一行波括弧に賛成する論拠
波括弧に賛成する論拠は、一貫性、バグの減少、そしてより自然な精神的解析です。
Jon Abramsによって書かれた記事「Single-line ‘if’ statements」で、Jonは波括弧なしの単一行if文の結果として、AppleのTLS実装に欠陥が導入された経緯を説明しています。Jonは、単一行文で波括弧を省略することはより簡潔ですが、欠陥を防ぐことは簡潔さよりも重要だと述べています。
Jonは妥協案を提案し、真に単一行にある場合は単一行文を許可することを提案しています:
if(ifTrue) MowTheLawn();
私はJonの考えに同感で、単一行で波括弧を省略することは、それが提供する利益に見合わないと思います。これにより、ソフトウェアエンジニアは有効な構文の2つのバリエーションを考慮することを強いられます。それほど悪くないように見えるかもしれませんが、if文に遭遇するたびにこの判断を下すのは負担です。次の効果として、エンジニアは数回のキーストロークを節約し、将来の読者にコードを解析する負担を押し付けることになります。
C#ソフトウェアエンジニアにとって、Microsoftは波括弧を求めるコーディング規約で立場を明確にしています。
行数に関係なく、すべての場合で波括弧を使用すると、何がスコープ内で何がスコープ外かが非常に明確になります。これにより、コードはエラーが起こりにくく、より一貫性があり、この点について議論する人もいるかもしれませんが、私はそれがより読みやすいと感じています。
著者:Chuck Conwayはソフトウェアエンジニアリングと生成AIを専門としています。ソーシャルメディアで彼とつながりましょう:X (@chuckconway) または YouTube をご覧ください。