Dictionary パーツ

Dictionary パーツは、キーを介してアクセス可能なデータのリストを含みます。 例えば、データベースから読み込んだキーおよびメッセージが取り込まれた辞書を含む、メッセージ処理機能を作成することができます。

Dictionary パーツは、常時使用可能であり、定義を必要としません。 Dictionary パーツに基づいた変数には、一連のキーとそれらに関連する値が含まれます。実行時に「キー/値」エントリーを追加したり除去したりできます。レコード内でフィールド名を使用するのと同じように、プログラム内のキー名を使用します。 辞書変数は、エントリーを入力した順序で保持します。

次の例は、辞書変数の宣言を示しています。
  myRef Dictionary 
    {
      ID        = 5,
      lastName  = "Twain",
      firstName = "Mark"
    };

宣言の中にエントリーを組み込むとき、各キー名は EGL 識別子であり、EGL の命名規則に従っている必要があります。 実行時にエントリーを追加する場合には、かなり柔軟性があります。『動的な型と動的アクセス』を参照してください。

辞書に新規に「キー/値」のペアを追加する代入例を次に示します。
  myRef.age = 30;
  myRef["Credit"] = 700;
既に存在するキーの代入を試みると、既存の「キー/値」エントリーがオーバーライドされます。 次の代入は有効であり、「Twain」が「Clemens」に置き換えられます。
  myRef.lastname = "Clemens";
代入を使用してデータを取り出すこともできます。
  lastname STRING
  age, credit INT;

  lastname = myRef.lastname; 
  age = myRef["age"];
  credit = myRef.credit;
「キー/値」エントリーの値は、ANY 型です。つまり、1 つの辞書にさまざまな種類の情報を入れることができます。 辞書エントリーには、以下のどの値でも入れることができます。
変数を辞書に追加すると、その変数のコピーが割り当てられます。次のレコード・パーツを考えてみます。
  Record ExampleRecord
	   x int;
	 end

次の例では、ExampleRecord 変数を辞書に入れてから、元の変数に含まれる値を変更します。

  testValue int;

  myRecord ExampleRecord;

  // 変数の値を設定し、
  // その変数のコピーを辞書に入れる。
  myRecord.x = 4; 
  myRef Dictionary
  {
    theRecord = myRecord
  };
	
  // 元のレコードに新規の値を入れる。
  myRecord.x = 700;

  // 辞書のレコードのコピーにアクセスし、
  // testValue に 4 を代入する。
  testValue = myRef.theRecord.x;
1 つの辞書を別の辞書に代入すると、代入先の内容が代入元の内容で置き換えられ、代入先辞書のプロパティーがオーバーライドされます (『Dictionary プロパティー』を参照してください)。 例えば、次のコード内の条件文は、true です。
  myRef Dictionary { age = 30 };

  newRef Dictionary { age = 50 };
  newRef = myRef;

  // 結果は true
  if (newRef.age == 30)
    ;
  end

宣言の中で指定するプロパティーは、辞書の処理方法に影響を与えます。 『Dictionary プロパティー』を参照してください。辞書に固有の関数は、コードにデータとサービスを提供します。 『Dictionary 関数』を参照してください。

互換性

表 1. Dictionary パーツの互換性に関する考慮事項
プラットフォーム 問題
COBOL 生成 Dictionary パーツはサポートされていません。

フィードバック