4Dは新しい変数タイプを開始します。コレクション

Deeplからの自動翻訳

4D v16 R4 では、 Collection と呼ばれる新しいタイプの変数が導入されました。これらの変数は何を意図しているのでしょうか?オブジェクトやBLOBのように、コレクションはテキスト、数値、ブーリアン、オブジェクト、そして他のコレクションなど、ほとんどすべての種類の変数を保持するために使用することができます。配列は常に同じ型の要素を含まなければなりませんが、コレクションでは、先に述べたすべての変数型を混在させることができるのです。

新機能は?

2つの新しいコマンドが作成されました(C_COLLECTIONNew collection).オブジェクト記法を使って、コレクションの内容にアクセスしたり、変更したりすることができます。コレクションは配列と比較することができますが、1種類のデータだけに制限されないので、より汎用性があります。

コレクションは文字列化することができ、文字列を解析してコレクションを作成することができます。これを行うには、既存のコマンドであるJSON StringifyJSON Parse を使用するだけです。JSON配列の操作に慣れている人は、コレクションが非常に似ていることに気づくでしょう。そうでなくても、すぐに慣れるでしょう。

主な相違点は2つあります。

1.1. コレクションのアイテムにアクセスするには、角括弧 [ ] を使用する必要があり、中括弧{ } は使用 しない

2.コレクションは0から始まるので、collection[0]と書くと最初のアイテムにアクセスすることができます。

一方、配列は(要素がすべて同じ型であるため)メモリの最適化が可能であり、高速かつ効率的である。一方、コレクションは高い柔軟性を備えています。つまり、メモリや速度を重視するのであれば、配列を使えばいい。より簡単にコーディングしたいのであれば、コレクションを使う。選択肢が増えたわけだ。

さらに、ほとんどの場合、コレクションは4Dの他のタイプの変数と同じように使うことができます。メソッドのパラメータとして送ったり、関数の戻り値として受け取ったり、ローカルまたはグローバルとして宣言したり、などなど。

データベースの例

例題

コレクションをどのように宣言し、使用するかについて、いくつかの例を挙げてみましょう。

C_COLLECTION(myCollection)
col1 :=New collection(12;14; "zoulou";45)
col2 :=New collection(50; "bravo";col1;Current date)
col3 :=New collection(col1;col2
)

$obj
bool:=New Object("val"; "Echo")
col :=New collection(12; "alpha";$obj;True)
vNum :=col[0]// Access first element of the collection vString :=col[1]
obj :=col[2]
:=col[3]

$n:=col.Length // This is the way to know the number of items of a collection!
vString :="The collection contains "+String($n)+" items"
)

Roland Lannuzel
- プロダクトオーナー&4Dエキスパート -電子工学を学んだ後、産業用ITの分野で開発者兼コンサルタントとして、さまざまなデータベースやテクノロジーを使って顧客のためのソリューションを構築。80年代後半に4Dに惚れ込み、会計、請求書作成、メールシステムなどのビジネスアプリケーションの作成に4Dを使用してきました。現在も、新機能やデータベース開発ツールの定義など、4Dの未来を積極的に切り開いています。