「 CodeComplete」という本によると、角かっこはコードの論理構造を示していないため、2行目に入れると誤解を招くため、最初の行(制御ステートメントと呼ばれます)に入れる必要があります。グラフィカルな観点から見ると、2番目のアプローチは次のようになります。
ここで、線AEは次のことを表しています。これは、この質問で宣言された2番目のアプローチに似ています。
A function foo ()
B {
C print "Hello";
D print "World";
E }
行Bが行Aに従属しているかどうか、または行Bがそれ自体の別個のステートメントであるかどうかがわからないため、表示される内容は誤解を招く可能性があります。
編集:画像が抽象的すぎる場合は、制御ステートメントと一緒に中括弧が最初の行に含まれることが多い理由を簡単に説明します
関数には2つの主要な要素があります。
- コントロールコンストラクト
- 関数のステートメント
2行目(画像の行B)に中括弧を置くことにより、それは制御ステートメントにも関数のステートメントの一部にもなりません。
編集2
IMO、コードの各行には、垂直方向のスペースを節約して、画面に一度に多くの行を表示し、コードの論理的な意味を保持するという目的が必要です。したがって、中括弧が関数宣言と同じ行にある場合、中括弧はそれによって開くステートメントに関連付けられます。ただし、それ自体が1行にあり(私の例ではB行)、関数宣言に従属するようにインデントされていない場合は、制御構造に関連付けられていないため、コードの論理的な意味が壊れます。また、関数ステートメントでもありません。したがって、関数宣言と同じ行に中括弧を付けることで、コードのすべての行が目的を果たし、コードの論理的な意味を保持し、画面スペースを節約します。
function foo() { // brace is on the same line and it's associated with the statement that it opens
print "Hello"; // this line does something
print "World"; // this line does something
} // this last brace terminates the function which is part of the control construct