Visual Basicの罠

多くの言語では
false and c = 3
という評価式において、c = 3は実行されない。
これはfalseである時点で、この評価式が確実に失敗するため、c = 3を実行しても意味がないからである。
これを利用して、Perlではよく
open(IN, $filename) or die(“ファイルの読み取りに失敗しました”)
というのを見かける。これはopen関数が失敗したときにのみdie関数が呼ばれるという(ORの場合には左の式の戻り値がTRUEの時点で式全体がTRUEとなるため、右の式が実行されない。逆を言えば、左の式がFALSEを返すときだけ右の式が実行される)性質を利用したものである。
ところがである。
VBの言語使用においては、これらは利用されない。必ず左式も右式も評価されてしまう。
他の言語をやっていたときに陥りやすい罠のひとつといえよう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です