意の中のカワズ(35歳の壁 別館)

35歳の壁の別館ブログです。コード中心になるようにしたいので、技術雑記はできるだけ本館に書きます。

VB6:「Null 判定の不思議」

Isnullでその変数値がnullであるかを確認することができますが、
実際にはisNull でしかnull を確認することはできない。という不思議。

例えば、
if a = null then
 debug.print "通らない"
else
 debug.print "通る"
end if

とあれば、実際には a の変数値がnull であろうが最初の判定文は
決してTrue にはならない。
そう考えるとこの構文を書けてしまうこと自体がワナに感じる。

VB では、null を判定式に含むものはすべてfalse と返すようにしているそうで、
おそらくnull とは何ぞや的な古い意味合いで強制(無条件)falseにしてるんだと思う。

であれば、判定式にNull 等価させる式も実行前バインドでどうにかすべきと感じる。
自分もたまにやります。Nullで判定式。(笑

すぐに誤動作するので「あれ?」ってなるけど。
ひょっとして全コンパイルすると判定したりするのかな・・?
今度やってみよう・・。