特に一般的なコーディングでは、異なる変数型を扱えるようにコードを書きたい場合があります。ポインターを使用すると、コードの読み取りやデバッグが難しくなります。例えば、データソースとしてフォームオブジェクトに汎用変数を割り当てたい場合など、全く不可能な場合もあります。
新しいコマンドは、異なるタイプの値を格納できる変数を宣言するために使用できます。新しい C_VARIANT コマンドによろしく!
バリアントの型をテストする
バリアントデータタイプは他のデータ型(配列を除く)を表現するために使用することができます。つまり、変数の型はバリアントですが、値の型は Text、Longint または他の有効な型です。変数の型を取得するには Typeコマンドで変数の型を、そして Value typeコマンドで値の型を取得できます。
C_VARIANT$variant
($variant)
$t :=Type($variant)// type: variant
$vt :=Value type($variant)// value type: undefined
:=6.5
$t :=Type($variant)// type: variant$vt :=Value type($variant) // value type: real
$variant :="Hello world"
$t :=Type($variant) // type: variant
$vt:=Value type($variant)
// value type: text
メソッドパラメータとしてのバリアント
また、複数の型を持つパラメータを受け取るメソッドを作る必要がある場合もあります。これでポインターは不要になり、バリアントデータタイプをパラメータとして受け付けるメソッドを作ることができます。
C_COLLECTION($1)
C_VARIANT ($2)
if ($2#Null)
$1 .push($2)
end if
そしてもちろん、バリアント型を返すメソッドも作ることができます。
C_TEXT($1;$JSFunction)
C_VARIANT ($0;$Result)
$JSFunction :=$1
WA EXECUTE JAVASCRIPT FUNCTION (
MyWArea;$JSFunction;$Result)
$0 :=
などです。$Result
バリアントデータタイプは、特に Null や Undefined の値を使用する必要がある場合、様々な場面で役に立ちます。詳しくはドキュメントセンターでご覧ください。