데이터 파트의 어레이
다수의 기타 프로그래밍 언어와 같이, 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이 초기화할 수 있도록
이를 작성할 때
어레이에 대해 시작 길이를 지정합니다. 항상
appendElement
및 removeElement 등의 어레이 함수로 나중에 요소를 추가하거나 제거할 수 있습니다.그러나 어레이에 대해 시작 길이를 지정하지 않으면
널로 시작되어
액세스할 항목이 어레이에 없습니다.
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 언어 참조의 "어레이"를 참조하십시오.