ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v20.6
New object

New object 


 

New object {( property ; value {; property2 ; value2 ; ... ; propertyN ; valueN} )} -> 戻り値 
引数   説明
property  テキスト in 作成するプロパティ名
value  Mixed in プロパティの値
戻り値  オブジェクト in 新しいランゲージオブジェクト

説明   

New object コマンドは新しい空の、あるいは事前に値が入れられたオブジェクトを作成し、その参照を返します。

何も引数を渡さなかった場合、New object は空のオブジェクトを作成し、その参照を返します。この参照をC_OBJECT で作成された4D変数あるいは4Dオブジェクトフィールドへと割り当てて下さい。

注: C_OBJECTObject type型の変数を宣言しますが、オブジェクトは作成しません。

オプションとして、一つあるいは複数のproperty/value のペアを引数として渡すことにより、新規オブジェクトにあらかじめ値を入れておくことができます:

  • property 引数には、作成したいプロパティのラベルを渡します。property 引数は大文字と小文字を区別することに注意してください。
  • value 引数にはプロパティに設定したい値を渡します。以下の型の値がサポートされます:
    • 数値(実数、整数...) 数値は必ず実数として保存されます。
    • テキスト
    • ブール
    • ポインター
    • blob (4D.Blob)
    • 日付
    • 時間
    • null
    • ピクチャー
    • オブジェクト
    • コレクション

以下の点に注意して下さい:

  • ポインターを渡した場合、それはそのままの形で保存されます。JSON Stringify コマンドを使用した際に評価されます。
  • 日付はカレントの"date inside objects"データベース設定(互換性ページ参照)に応じて、"yyyy-mm-dd" という日付か "YYYY-MM-DDTHH:mm:ss.SSSZ"というフォーマットの文字列で保存されます。4D日付をオブジェクトに保存する前にテキストに変換した場合、プログラムはデフォルトでローカルのタイムゾーンを使用します。SET DATABASE PARAMETER コマンドのDates inside objects セレクターを使用することで、この振る舞いを変更することができます。
  • 時間を渡した場合、ミリ秒の数(実数)として保存されます。

このコマンドは空の、あるいは値が入れられたオブジェクトを作成することができます:

 C_OBJECT($obj1)
 C_OBJECT($obj2)
 C_OBJECT($obj3)
 $obj1:=New object
  // $obj1 = {}
 $obj2:=New object("name";"Smith")
  // $obj2 = {name:Smith}
 $obj3:=New object("name";"Smith";"age";40)
  // $obj3 = {name:Smith,age:40}

オブジェクトを引数の値として渡して、新規のオブジェクトを作成する場合を考えます:

 C_OBJECT($Children;$Contact)
 
  //オブジェクト配列を作成
 ARRAY TEXT($arrChildren;3)
 $arrChildren{1}:="Richard"
 $arrChildren{2}:="Susan"
 $arrChildren{3}:="James"
 OB SET ARRAY($Children;"Children";$arrChildren)
 
  //オブジェクトを初期化
 $Contact:=New object("FirstName";"Alan";"LastName";"Parker";"age";30;"Children";$Children)
  // $Contact = {FirstName:Alan,LastName:Parker,age:30,Children:{Children:[Richard,Susan,James]}}

このコマンドはオブジェクトを引数として渡す際に便利です:

 C_OBJECT($measures)
 $measures:=Get database measures(New object("path";"DB.cacheReadBytes";"withHistory";True;"historyLength";120))

このコマンドを使用すると、オブジェクトをループ内で容易に管理できます:

 ARRAY OBJECT($refs;0)
 C_LONGINT(vCounter)
 
 For(vCounter;1;100)
    APPEND TO ARRAY($refs;New object("line";"Line number "+String(vCounter)))
 End for



参照 

Download HDI database
New shared object

 
プロパティ 

プロダクト: 4D
テーマ: オブジェクト(ランゲージ)
番号: 1471

This command can be run in preemptive processes

 
ページの目次 
 
履歴 

初出: 4D v16 R3

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v20)
ランゲージリファレンス ( 4D v20.1)
ランゲージリファレンス ( 4D v20.2)
ランゲージリファレンス ( 4D v20.3)
ランゲージリファレンス ( 4D v20.4)
ランゲージリファレンス ( 4D v20.5)
ランゲージリファレンス ( 4D v20.6)