참조 변수
매개변수 또는 변수는 스토리지의 영역입니다. 일부 경우
변수에 특정 이름 또는 직원 ID와 같은 값이
포함됩니다. 기타 경우에는 변수가 참조 변수이고
런타임 시 값을 보유하는 주소를 포함합니다. 참조 유형을
기반으로 하는 변수는 참조 변수입니다. 참조 유형은
다음과 같습니다.
- 서비스
- 인터페이스
- 배열
- 사전
- ArrayDictionary
- ExternalType
- 위임
- ANY, BLOB, CLOB 기본 유형
또한 다음 두 개의 특수 레코드 스테레오타입이 참조 유형으로
정의됩니다.
- 예외
- ConsoleForm
이러한 유형을 기반으로 하는 모든 변수는 참조 변수입니다.
참조 변수를 초기화할 때까지 참조 변수를 사용할 수 없습니다. 새
참조 변수는 기본적으로 널값을 가지며 이 변수를 사용하여 값, 필드 또는 함수에
액세스하려고 하면 NullValueException이 발생합니다. new
연산자를 사용하거나 보다 효율적인 값 설정 블록(값 설정 블록 참조)을
사용하여 참조 변수를 초기화하십시오.
// new operator makes the variable non-null
myDictionary Dictionary = new Dictionary;
// so does an empty set-values block
myDictionary Dictionary{};
배열 변수도 처음에는 널이지만 크기를 지정하여 초기화할 수 있습니다. 자세한 정보는 배열의 내용을 참조하십시오.
참조 변수의 지정과 비교에서는 값 기반 변수의 지정 및 비교와 다른 규칙을 따릅니다. 자세한 정보는 EGL에서 참조 호환성를 참조하십시오.
참조 변수의 하위 구조를 포함한 복사
move 문을 사용하여 참조 변수의 값을 하위 구조를 포함하여 복사할 수 있습니다. 예를 들어, 다음과 같습니다.
arrayA int[] = [1, 2, 3, 4, 5];
arrayB int[];
move arrayA to arrayB;
arrayA[1] = 6;
결과는 다음과 같습니다.
arrayA [6, 2, 3, 4, 5]
arrayB [1, 2, 3, 4, 5]
호환성
| 플랫폼 | 문제 |
|---|---|
| COBOL 생성 | 대형 오브젝트 유형 BLOB과 CLOB은 지원되지 않습니다. |
| JavaScript 생성 | 다음 유형이 지원됩니다. ANY, BIGINT,
BIN(소수 자리가 없는 경우에만), Boolean, DataItem,
DATE, DECIMAL, Delegate, Dictionary, FLOAT, INT, NUM, NUMBER, SMALLFLOAT,
SMALLINT, STRING(크기 제한이 없는 경우에만), TIME,
TIMESTAMP, NUM, MONEY, 서비스 파트, 인터페이스 파트, 외부
유형(스테레오타입 JavaScript),
지원되는 유형의 배열, 구조화되지 않은 기본 파트, 예외 파트,
SQL 레코드 파트. 다음 유형은 지원되지 않습니다. ArrayDictionary, BIN(소수 자리가 있음), BLOB, CHAR, CLOB, DBCHAR, HEX, INTERVAL, MBCHAR, NUMC, STRING(크기 제한이 있음), PACF, UNICODE, 구조화 레코드 파트. |
| JSF | JSF 핸들러에서 onConstructionFunction 특성으로 지정된 함수에 참조 변수를 전달할 수 없습니다. 참조 변수를 세션 또는 요청 오브젝트에서 배치하거나 검색할 수도 없습니다. |