ブロック構造の表現方法
{}
code:example
fn hoge(piyo) {
return 42
}
特徴
単文のときは{}は省略可な言語が多い
Perlなどのように、単文のときも{}を強制するものもある
以下のデメリットを回避するため
直接の理由がそれなのかは知らないけど、とりあえず回避できる
メリット
オートインデントができる
デメリット
単文を複文にするときに{}を付け忘れる
そして、その時に構文エラーにならない
単文のときは{}が必要ないので
code:example
if(isHoge)
piyo()
// ↓
if(isHoge)
piyo()
piyo2()
括弧が増えて煩雑になる
言語例
C, C++< Java, JavaScript
インデント
code:example
fn hoge(piyo)
return 42
特徴
文と式の区別が明確になる
これはメリットともデメリットとも取れる
メリット
括弧が少なく、簡素である
デメリット
エディタのオートインデント機能が使えない
エディタがどこでブロックを抜けるかの判断ができない
言語例
Python, Nim,
end
code:example
fn hoge(piyo)
return 42
end
メリット
オートインデントがきく
デメリット
書き忘れそう
言語例
Eiffel, Ruby
begin, end
code:example
begin
return 42
end
言語例
Pascal