異なるタイプの値を格納するためのC_VARIANT

Deeplからの自動翻訳

特に一般的なコーディングでは、異なる変数型を扱えるようにコードを書きたい場合があります。ポインターを使用すると、コードの読み取りやデバッグが難しくなります。例えば、データソースとしてフォームオブジェクトに汎用変数を割り当てたい場合など、全く不可能な場合もあります。

新しいコマンドは、異なるタイプの値を格納できる変数を宣言するために使用できます。新しい 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 の値を使用する必要がある場合、様々な場面で役に立ちます。詳しくはドキュメントセンターでご覧ください。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。