« ベストサイト50 | メイン | 首都高ムービー »

条件演算子の簡易シンタックス

FLASHのActionScriptの条件演算子はふつう、

var numOne:Number = 8;
var numTwo:Number = 5;
if (numTwo > 0) {
trace(numOne / numTwo); // 1.6
} else {
trace("carrot");
}

…と、if....else を使って書くことが多い。

これをもっと短く、、条件 (?:) 演算子を使った簡易スタイルで記述すると、

var numOne:Number = 8;
var numTwo:Number = 0;
trace((numTwo > 0) ? numOne/numTwo : "carrot");

…という記述になる。たしかに短い記述で簡潔だ。
しかしマニュアルではこの書き方を強く避けるように口を酸っぱくして何度も言っている。
「ActionScript が読みにくくなります。」
「簡易シンタックスは読みにくくなるので、お勧めできません。」
「どうしても使う場合はをカッコで囲むなどして読みやすくしてください」
「自分や、この ActionScript を使用する他の人が間違えることも考えられます」
などなど。

構文を知らなければ、確かになんのことやらな話になるだろう。
しかしある程度構文を知っていることが前提になる ActionScript は短くて簡潔ならそれでいい、という考え方はダメなんだろうか。
どちらの書き方も確かに一長一短があるし、書き方を統一していればそれほど極端に毛嫌いするように「使うな」と言わなくてもいい気がする。
すくなとも、コードのキレイさでは、簡易スタイルのほうがキレイだと思う。
「三項演算」なんていう名前もよくない。これはしかたないけど。

トラックバック

このエントリーのトラックバックURL:
http://www.nishiz.com/mt/mt-tb.cgi/133

コメントを投稿