読者です 読者をやめる 読者になる 読者になる

No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

中括弧省略問題

例えばif文で、

「処理する行が1行のみであった際は、中括弧を省略できる」

if (条件) 処理;

と、みなさんは最初習ったのではないだろうか。
しかしどうだろう、次のようにも考えられないだろうか。

「条件式のあとは式が一つのみ指定できます。
もし複数指定したい場合は、中括弧で複数の処理を囲むことで指定可能です」

if (条件) {
  処理1;
  処理2;
}

こちらの方が、中括弧は複数の処理をまとめるためのものという本質を捉えているように思える。

しかし、よく目にするコーディングルールには「常に中括弧を付けよ!」みたいなものがあるほどだ。
曲解、理解の逆転もいいところだが、これも、「範囲をミスしにくくする」という現実的な解であるととらえれば頷ける。*1

現実にはいつも設計者の意図を超えた使われ方をするものだ。

もし、しっくりこない説明に出くわしたとして理解できないような概念があったとして、それがスタンダードな考え方だったとしても、どうか落ち込まないで欲しい。
それは今回の中括弧省略問題のようなスタンダードな曲解かもしれない。だから、さまざまな視点から観察し、本質を捉えられるようになるベキだと、わたしは思う。

*1:後者の説明を推奨するならば、学習者はデフォルトで中括弧を使わなくなるだろう。もしかするとこのコーディングルールの設計者はそれを回避するためにあえてそうしているのかもしれない。