데이터 파트의 어레이

다수의 기타 프로그래밍 언어와 같이, EGL은 동일한 유형의 변수를 어레이에 그룹화할 수 있습니다. 이 주제에서는 EGL의 어레이 사용 기본을 다룹니다.

어레이는 동일한 유형의 정렬된 일련의 변수입니다. 예를 들어, 정수 변수의 어레이를 정의할 수 있습니다.
myInts int[] = [1,2,3,4,5];
이 경우 어레이가 일련의 5개의 정수 변수입니다. EGL에서, 어레이가 숫자 1로 번호 지정을 시작하여 이 어레이의 요소가 1부터 5까지의 번호로 지정되어 있습니다.
대괄호 안에 정수의 색인 번호를 지정하여 개별 변수인 경우와 같이 어레이의 정수 각각에 액세스할 수 있습니다.
myInts[1] = 5+5;
myInts[2] = 16;
myInts[3] = myInts[1] + myInts[2];
또한 다음 두 개의 메소드 중 하나를 통해 어레이에 한 번에 둘 이상 값을 지정할 수 있습니다.
  • 값 설정 블록을 사용할 수 있습니다.
    myStrings string[2];
    myStrings {"Hello", "Goodbye"};

    이 구문은 중괄호 ({)를 사용하고 등호(=)를 사용하지 않습니다. 이는 대입 명령문이 아니지만, 요소가 해당 특성인 경우와 같이 어레이에 값을 지정하는 메소드입니다. 이 메소드는 실행 시 다른 메소드보다 성능이 더 좋은데, 이는 어레이에 대한 어레이 리터럴을 수반합니다.

    또한 이 메소드는 중괄호의 새 값을 승인하는 데 충분한 요소가 어레이에 있는 경우에만 작동합니다. EGL은 요소를 자동으로 추가하지 않습니다. 따라서 어레이의 시작 길이를 지정해야 하거나, 그렇지 않으면 이에 요소를 추가하여 값 설정 블록으로 요소에 값을 지정할 수 있습니다.

  • 어레이에 어레이 리터럴을 지정할 수 있습니다.
    myBigInts bigint[];
    myBigInts = [10,40];
    이 메소드는 생성된 코드가 두 개의 어레이를 작성해야 하므로(변수용 및 리터럴용) 값 설정 메소드보다 약간 느립니다.
또한 두 메소드 중 하나를 사용하여 작성 시 어레이에 값을 지정할 수 있습니다.
myStringsInit string[] {"Hello", "Goodbye"};
myBigIntsInit bigint[] = [10, 40];
값 설정 블록에서 시작 값을 지정하는 것은 물론 어레이에 특성을 지정하려는 경우 시작 값 뒤에 특성 이름-값 쌍을 배치하십시오.
myDecimals decimal(10,2)[3] {55.43, 22.12, 4.34, CurrencySymbol = "$"};
시작 값을 지정하는 어레이 리터럴 메소드를 사용 중인 경우, 일반적으로 값 설정 블록으로 특성을 설정할 수 있습니다.
myBools boolean[3]{MaxSize = 5} = [true, false, true];
작성 시 어레이에서 요소의 수를 지정하는 경우 해당 어레이가 초기화되어 해당 수의 어레이를 포함합니다. 각 요소에는 해당 유형에 대해 기본값이 있습니다.
fiveInts int[5];
SysLib.writeStderr(fiveInts[1]); //Writes "0"
좋은 코딩 사례의 경우, EGL이 초기화할 수 있도록 이를 작성할 때 어레이에 대해 시작 길이를 지정합니다. 항상 appendElementremoveElement 등의 어레이 함수로 나중에 요소를 추가하거나 제거할 수 있습니다.
그러나 어레이에 대해 시작 길이를 지정하지 않으면 널로 시작되어 액세스할 항목이 어레이에 없습니다.
nullArray int[];
nullArray[2] = 5; //NullValueException!
nullArray.appendElement(5); //NullValueException!
nullArray {1,2,3}; //NullValueException!
대신, 어레이 리터럴로 어레이를 초기화하여 시작해야 합니다.
nullArray2 int[];
nullArray2 = [1,2,3];
nullArray2.appendElement(4);
또는 값 설정 블록을 사용하여 널 어레이를 초기화할 수 있습니다.
emptyArray int[]{};
emptyArray.appendElement(5);
이전의 예제의 값 설정 블록은 비어 있습니다. 현재 어레이에 있는 것보다 많은 요소를 어레이에 지정하는 데 값 설정 블록을 사용할 수 없습니다. 이 어레이에는 0 요소가 있어서, 0 값으로 값 설정 블록을 사용해야 합니다.
이에 더 긴 어레이 리터럴을 지정하여 어레이의 길이를 늘릴 수 있습니다. 이 경우 짧은 어레이를 더 긴 새 어레이로 겹쳐씁니다. 다음 예제는 5개의 요소로 어레이 리터럴을 지정하여 어레이를 두 개의 요소로만 대체합니다.
smallIntArray int[2];
smallIntArray = [1,2,3,4,5];
그러나 현재 어레이에 있는 것보다 많은 요소를 어레이에 지정하는 데 값 설정 블록을 사용할 수 없습니다.
smallStrArray string[2];
smallStrArray {"ab", "cd", "ef", "gh"}; 
//IndexOutOfBoundsException! Array has only 2 elements!

어레이에 대한 자세한 내용은 EGL 언어 참조의 "어레이"를 참조하십시오.