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

ホーム

 
4D v19.8
コレクションについて

コレクションについて  


 

概要  

コレクション テーマのコマンドは、コレクションを作成し、操作します。

コレクションとは類似した、あるいは混在した型(テキスト、数値、オブジェクト、コレクション、あるいはnull)の値の、順番に並べられたリストです。コレクション型の変数を扱うためには、オブジェクト記法を使用する必要があります(オブジェクト記法の使用参照)。4D コレクションについての追加の情報については、RELATE MANYの章のの段落を参照してください。

コレクション要素にアクセスするには、大カッコ内に要素番号を渡す必要があります:

collectionRef[expression]

expression には正の整数を返す有効な4D 式であればどんなものでも渡すことができます。例:

 myCollection[5]  //コレクションの6番目の要素にアクセス
 myCollection[$var]

注: コレクション要素は0 番から始まるということに注意してください。

オブジェクト記法を使用することで、コレクションの要素に値を代入したり、コレクション要素の値を取得することができます:

 myCol[10]:="My new element"
 $myVar:=myCol[0]

存在するコレクションの最後の要素を超えるインデックスの要素に割り当てようとした場合、コレクションは自動的にリサイズされ、途中の値には全てnull 値が割り当てられらます:

 C_COLLECTION(myCol)
 myCol:=New collection("A";"B")
 myCol[5]:="Z"
  //myCol[2]=null
  //myCol[3]=null
  //myCol[4]=null

二種類のコレクションを作成することができます:

  • 通常(非共有)コレクション、New collection コマンドを使用
    これらのコレクションはピクチャーやポインターも含めた多数のデータ型をサポートします。これらは特別なアクセスコントロールをせずに編集可能です。
  • 共有コレクション、New shared collection コマンドを使用
    これらのコレクションはプリエンティブスレッドを含む、プロセス間で共有可能なコレクションです。これらのコレクションへのアクセスはUse...End use 構造によって管理されています。詳細な情報については、共有オブジェクトと共有コレクション のページを参照して下さい。

4D コレクション参照はメンバーメソッド と呼ばれる特定のメソッドを利用することができます。オブジェクト記法(オブジェクト記法の使用参照)のおかげで、これらのメソッドは以下のシンタックスを使用することでコレクション参照に対して適用することが可能です:

{$result:=}myCollection.method( {params} )

引数がなかったとしても、メンバーメソッドは小カッコ"()"付きで呼び出されなければならない点に注意して下さい。そうでない場合にはシンタックスエラーが生成されます。

例えば:

 $newCol:=$col.copy() //$col を $newColへディープ・コピー
 $col.push(10;100) //10 と100 をコレクションに追加

一部のメソッドは変更した後の元のコレクションを返すので、連続して呼び出しを実行することが可能です:

 $col:=New collection(5;20)
 $col2:=$col.push(10;100).sort() //$col2=[5,10,20,100]

警告: メソッドを使用する場合、ECMAScript 準拠のプロパティパスを使用する必要があります。即ち、プロパティ名には "."(ドット)、"[ ]"(大カッコ)、あるいは" "(スペース)を使えないということです。例えば、オブジェクトプロパティ識別子 にならえば、$o["My.special.property"] というプロパティ名はサポートされています。ですが、これらはメソッドとして使用することはできません:

 $vmin:=$col.min("My.special.property") //undefined
 $vmin:=$col.min(["My.special.property"]) //エラー

いくつかのコレクションメソッドは引数としてpropertyPath 引数を受け入れます。この引数は以下のように用いることができます:

  • オブジェクトプロパティ名、 例えば"lastName"
  • オブジェクトプロパティパス、 例えばドット文字で繋げられたサブプロパティの階層シークエンスなど。例: "employee.children.firstName"

結果として、propertyPath 引数が期待される時、一つ以上の"."を含むプロパティ名の使用は、4D がパスを正常に解析することの妨げとなるため、サポートされません。

注: 詳細な情報については、オブジェクトプロパティ識別子 の章を参照して下さい。

 
プロパティ 

プロダクト: 4D
テーマ: コレクション

 
ページの目次 
 
履歴 

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v19)
ランゲージリファレンス ( 4D v19.1)
ランゲージリファレンス ( 4D v19.4)
ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)