次の例に示すように、それぞれの「プロパティー/値」エントリーは、構文上、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 パーツに固有のものではないプロパティーのいずれかを使用する場合は、
プロパティー宣言の前に
@ 演算子を付け、適切な構文を使用しなければなりません。
詳しくは、『
@ 演算子』を参照してください。