generated at
ブロック構造の表現方法

{}
example
fn hoge(piyo) { return 42 }
特徴
単文のときは {} は省略可な言語が多い
Perlなどのように、単文のときも {} を強制するものもある
以下のデメリットを回避するため
直接の理由がそれなのかは知らないけど、とりあえず回避できる
メリット
オートインデントができる
デメリット
単文を複文にするときに {} を付け忘れる
そして、その時に構文エラーにならない
単文のときは {} が必要ないので
example
if(isHoge) piyo() // ↓ if(isHoge) piyo() piyo2()
括弧が増えて煩雑になる
言語例
C, C++< Java, JavaScript


インデント
example
fn hoge(piyo) return 42
特徴
文と式の区別が明確になる
これはメリットともデメリットとも取れる
メリット
括弧が少なく、簡素である
デメリット
エディタのオートインデント機能が使えない
エディタがどこでブロックを抜けるかの判断ができない

言語例
Python, Nim,



end
example
fn hoge(piyo) return 42 end
メリット
オートインデントがきく
デメリット
書き忘れそう
言語例
Eiffel, Ruby

begin, end
example
begin return 42 end
言語例
Pascal