Dictionary プロパティー

次の例に示すように、それぞれの「プロパティー/値」エントリーは、構文上、1 つの「キー/値」エントリーと等価です。エントリーは任意の順序で配置できます。
  myRef Dictionary 
    { 
      // プロパティー
      caseSensitive = no,
      ordering = none,  
     
      // 「キー/値」のペア
      ID        = 5,
      lastName  = "Twain",
      firstName = "Mark",
      age = 30
    };

コードでプロパティーやその値を追加したり、取り出したりすることはできません。

選択可能なプロパティーは、以下のとおりです。
caseSensitive
キー・アクセスが大/小文字の区別の影響を受けるかどうかを示します。選択可能なオプションは以下のとおりです。
NO (デフォルト)
キーの大/小文字はキー・アクセスに影響しません。次の文は同じことを意味します。
  age = row.age;
  age = row.AGE;
  age = row["aGe"];
YES
EGL は本質的に大/小文字を区別しない言語ですが、以下の文は異なる結果になる可能性があります。
  age = row.age;
  age = row.AGE;
  age = row["aGe"];

caseSensitive プロパティーの値は、dictionary 関数で説明するいくつかの関数の振る舞いに影響します。

ordering
取り出すキーの順序を決定します。このプロパティーの値は、関数 getKeys() および getValues() の振る舞いに影響を与えます。 詳しくは、『dictionary 関数』を参照してください。 プロパティーの値は、辞書がキーを保存する方法 (常に入力された順序) には影響しませんが、取り出す際の順序に影響します。
OrderingKind 列挙型を使用して、このプロパティーの値を指定します。OrderingKind 列挙型には、次の値が備わっています。
none (デフォルト)
コードでは、「キー/値」エントリーの順序は不確定です。 getKeys() 関数を呼び出す際のキーの順序は、getValues() 関数を呼び出す際の値の順序と一致しない場合があります。
byInsertion
getKeys() は、キーを戻し、getValues() は、それらを挿入した順序で値を戻します。 宣言内のエントリーは、左から右への順序で挿入されるものと見なされます。
byKey
getKeys() はキーを戻し、getValues() はキーの順序で値を戻します。 (このトピックで後述される『互換性』を参照してください。)
プログラム内で辞書変数を宣言する際、任意の EGL フィールド・レベル・プロパティーを組み込むことができます (『フィールド・レベル・プロパティー』を参照)。 これら、Dictionary パーツに固有のものではないプロパティーのいずれかを使用する場合は、 プロパティー宣言の前に @ 演算子を付け、適切な構文を使用しなければなりません。 詳しくは、『@ 演算子』を参照してください。

互換性

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

フィードバック