質問は:それはより良いのではないでしょうか?
答えは次のとおりです。この種のものは完全に主観的であるため、それは異なります。あなたが機械であるか、そのように考えない限り。
はい、すべての複合ステートメントに開始/終了を強制することは一貫性に対するいくらかの苦痛を満たしますが、周囲の言語要素がすでに自然な囲いを提供している場合、これを要求することは完全に冗長です。
CASEステートメントについて考えてみます。
// "Sensible" syntax
case VALUE of
1: DoSomething;
2: begin
DoSomethingElse;
DoMore;
end;
else
DoForAllOtherValues;
DoMore;
end;
あまり賢明ではないが、より一貫性があり「論理的」であるのに対して:
case VALUE of
1: DoSomething;
2: begin
DoSomethingElse;
DoMore;
end;
else
begin
DoForAllOtherValues;
DoMore;
end;
end;
最後の「終了」は「ケース」の一部であることに注意してください。それなしではできません。
Chromeの初期バージョン(Oxygeneになり、その後Prismになりました)では、これが実際にcaseステートメントに必要な構文であったと確信しています。もしそうなら、それはもはやそうではありません。常識が普及したと思われます。
私の個人的な意見では、OGoSC(構文的一貫性の客観的神)を満足させることは、おそらくそれほどではありませんが、実際にはあなたと私、SGoHRaC(人間の可読性と理解の主観的神)に関連性があります。
多くの場合、そうではないように見えるかもしれませんが、私たち人間は実際には機械ではありません。テキストを解析して理解できるようにするために、ルールを単純化して最小限の一貫性のあるセットに減らす必要はありません。いくつかのルールが必要ですが、マシンに対する私たちの大きな利点は、特にそのような構文と構造が冗長性の点で無関係である場合に、構文と構造の厳密なレジメンから私たちを解放する思想の自由であるため、より多くを処理できます。
この場合のように。
コンパイラが解釈できないことを間違えると、コンパイルするたびに通知されます。しかし、コンパイラーは、コードを「読みやすく」することを感謝しません(コンパイラーは、与えられた規則に従うだけです。コンパイラーがコードを「読みやすく」するために、それはすでに完全に幸せに従うことができるという規則)。
読みにくくする任意のルールを課す場合(ルールが多かれ少なかれ不変/一貫しているためではなく、それ自体がより多くのノイズとフィルタリングする必要のある冗長な情報を含む一貫した構造を課すため)、あなたは支払うでしょう人間の生産性の価格。
実際、これらの「より簡単な」より「一貫性のある」ルールは、実際には全体的に困難になる可能性があります...CASEステートメントをもう一度検討してください。
その複合の開始/終了を意味のあるものにするには、「case」をcase / endペアの一部ではなく、スタンドアロンステートメントにする必要があります。したがって、これらはすべて有効な構文である必要があります。
case VALUE of
1: DoSomething;
2: DoSomethingElse;
case VALUE of
1: DoSomething;
2: DoSomethingElse;
else
DoOther;
case VALUE of
1: DoSomething;
2: begin
DoSomethingElse;
DoMore;
end;
else
DoOther;
case VALUE of
1: DoSomething;
2: begin
DoSomethingElse;
DoMore;
end;
else
begin
DoOther;
DoMoreOther;
end;
case VALUE of
1: DoSomething;
2: begin
DoSomethingElse;
DoMore;
end;
同意できないかもしれませんが、コードが準拠するように記述されているルールの一貫性が高くても、このより一貫性のある構文により、実際のコードの一貫性が実際に低くなるように思われます。