사전 특성

다음 예제와 같이 각각의 특성/값 항목은 키/값 항목과 구문상 동등합니다. 항목은 임의의 순서로 배치될 수 있습니다.
  myRef Dictionary 
    { 
      // properties 
      caseSensitive = no,
      ordering = none,  
     
      // key/value pairs
      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 특성의 값은 사전 함수에서 설명된 몇몇 함수의 동작에 영향을 미칩니다.

ordering
검색하는 키의 순서를 판별합니다. 이 특성의 값은 getKeys()getValues() 함수의 동작에 영향을 미칩니다. 자세한 정보는 사전 함수를 참조하십시오. 이 특성의 값은 사전이 키를 저장하는 방식(항상 사용자가 키를 입력한 순서로 저장함)에 영향을 미치지 않지만 키를 검색하는 순서에는 영향을 미칩니다.
OrderingKind 열거를 사용하여 이 특성의 값을 지정하십시오. OrderingKind 열거는 다음과 같은 값을 가지고 있습니다.
none(기본값)
코드가 키/값 항목의 순서를 신뢰할 수 없습니다. getKeys() 함수를 호출할 때 키의 순서가 getValues() 함수를 호출할 때의 값 순서와 일치하지 않을 수 있습니다.
byInsertion
getKeys()는 키를 리턴하고 getValues()는 키를 삽입한 순서의 값을 리턴합니다. 선언의 항목은 왼쪽에서 오른쪽 순서로 먼저 삽입되는 것으로 간주됩니다.
byKey
getKeys()는 키를 리턴하고 getValues()는 키 순서의 값을 리턴합니다. (이 주제의 이후 부분에서 "호환성"을 참조하십시오.)
프로그램에서 사전 변수를 선언할 때 EGL 필드 레벨 특성을 포함할 수 있습니다(필드 레벨 특성 참조). 사전 파트에 고유하지 않은 이 특성을 사용하는 경우에는 특성 선언 앞에 @ 연산자를 추가하고 적절한 구문을 사용해야 합니다. 자세한 정보는 @ 연산자의 내용을 참조하십시오.

호환성

표 1. 사전 파트에 대한 호환성 고려사항
플랫폼 문제
COBOL 생성 사전 파트가 지원되지 않습니다.