メインコンテンツまでスキップ
バージョン: 20 R7 BETA

OB Is defined

OB Is defined ( object {; property} ) -> 戻り値

引数説明
objectObject, Object構造化されたオブジェクト
propertyText指定時にはプロパティをチェック、省略時にはオブジェクトをチェック
戻り値Booleanproperty 省略時:object が定義済みの場合はTrue を、それ以外は False を返す
property 指定時:property が定義済みの場合はTrue を、それ以外は False を返す

説明

OB Is definedコマンドは、object または property が定義済みである場合にはTrueを返し、それ以外の場合にはFalseを返します。

object 引数で指定するオブジェクトは、 C_OBJECT コマンドを使用して作成されている、あるいはオブジェクトフィールドが選択されている必要があります。

property 引数を省略した場合、コマンドは object が定義済みかどうかを調べます。オブジェクトの中身が初期化されていれば定義済みであるとみなされます。

注: 定義済みのオブジェクトでも空である場合もあります。オブジェクトが空もしくは未定義であるかどうかを調べる場合には、 OB Is empty コマンドを使用して下さい。

property 引数を渡した場合、コマンドは指定されたプロパティが object 内に存在するかどうかをチェックします。property 引数では、大文字と小文字は区別されることに注意して下さい。

例題 1

オブジェクトの初期化を調べる記法:

 var $object : Object
 $def:=OB Is defined($object) // $object は未定義なので$def=false
 
 OB SET($object;"Name";"Martin")
 OB REMOVE($object;"Name")
 $def2:=OB Is defined($object) // $object は空({})ではあるものの定義済みなので$def2=true

例題 2

プロパティが存在しているかどうかを調べます:

 var $ref : Object
 OB SET($ref;"name";"smith";"age";42)
  //...
 If(OB Is defined($ref;"age"))
  //...
 End if

このテストは以下のコマンドと同等です:

 If(OB Get type($Object;"name")#Is undefined)

参照

OB Is empty