VB6:内部処理の話
VBの悪しき変数といえば、バリアント 別名 何でも型。
とある本を読んでいて唐突に思いました。
変数の暗黙変換における内部処理は、右辺型に従うというもの。
右辺の意味がわからない人は、海水浴でもしとけ!ってことで、(うん、アレ系好き笑)
さて、右辺型がVariantだったらどするのか?
とりあえず、
dim a as variant
if "" = a then
debug.print true
else
debug.print false
end if
あたりを試してみる。
死にはしないようです。
内部処理的にどうなってるんでしょう?
これが逆ならわかります。
if a = "" then
ならば右辺はStringです。
なので、未初期化のaは、space(0)となるはず。
よって、if space(0) = "" then と解釈しているはずです。
この逆は??
うむむむ。。。
ば、バリアント撃てーっ!(意味フw
追記:2011.08.08
いやいや、まてまて。
右辺の型に従うとなると暗黙の変換の意味がなくなる気がします。
例えば、
Dim strData As String
strData = cint(2)
であったとして、エラーになることになる。
それはおかしい。
ちょっと、読み返してみます。
オペランド的に右であるかどうかという右辺じゃないのかも・・。