Undefined
Undefined ( expression ) : Boolean
引数 | 型 | 説明 | |
---|---|---|---|
expression | Expression | → | テストしたい結果の値を返す式 |
戻り値 | Boolean | ← | True = 変数は現在未定義である False = 変数は現在定義されている |
説明
Undefined コマンドは、expression の評価の結果が未定義の値である場合にはTrueを返し、それ以外の場合にはFalseを返します。
- 変数が定義されるのは、コンパイラ命令で変数が作成された場合や値が変数に代入された場合です。その他の場合は定義されません。データベースがコンパイルされている場合、Undefined コマンドはすべての変数に対してFalse を返します。
- オブジェクト内に存在しないオブジェクトプロパティは未定義です。
- Undefined はフィールド参照に対しては常にFalse を返します。
注: Undefined はexpression 引数を評価するという点に注意して下さい。以下の宣言は同等の意味を持ちます:
$result:=Undefined($exp)
// 以下と同じ結果:
$result:=(Value type($exp)=Is undefined)
一部の場合において、変数の評価が行われて欲しくないこともあるかもしれません(例えば、変数が未定義があるかどうかをチェックするために変数へのポインターを使用している場合など)。その場合には、以下のように書く必要があります:
$result:=(Type($ptr->)=Is undefined) // ポイントしている変数が存在しない場合はtrue(エラーなし)
例題
オブジェクトプロパティを対象に、このコマンドおよび Null コマンドを使用した場合の結果の例です:
var vEmp : Object
vEmp:=New object
vEmp.name:="Smith"
vEmp.children:=Null
$undefined:=Undefined(vEmp.name) // False
$null:=(vEmp.name=Null) //False
$undefined:=Undefined(vEmp.children) // False
$null:=(vEmp.children=Null) //True
$undefined:=Undefined(vEmp.parent) // True
$null:=(vEmp.parent=Null) //True