as 연산자

as 연산자는 한 EGL 유형의 값을 다른 유형에 캐스트합니다. as 연산자의 가장 일반적인 사용법은 ExternalType 구문을 통해 Java™가 리턴하는 오브젝트와 함께 사용하는 것입니다. 이 액세스는 엄격하게 정적이므로 EGL에 대해 정의한 유형에 오브젝트를 캐스트해야 합니다. 자세한 정보는 "ExternalType 파트"를 참조하십시오.

이 연산자는 ANY 유형 변수 처리 시에도 유용합니다.

구문

as 연산자에 대한 구문 다이어그램
expression
올바른 EGL 표현식입니다.
type
DataItem을 제외한 EGL 유형입니다. DataItem 파트는 나타내는 기본 유형과 독립된 유형을 정의하지 않습니다. ExternalType 참조의 경우 런타임 코드는 EGL ExternalType이 나타내는 실제 유형을 참조해야 합니다. 이 유형은 널 입력 가능 유형 스펙 문자 "?"를 포함할 수 있습니다("널값 및 널 입력 가능 유형" 참조).

외국어 캐스트

Java 유형에 대한 EGL 맵핑이 충분하지 않은 경우 as 캐스트 연산자를 사용하십시오("Java에 EGL 기본요소 맵핑" 참조). 이는 유형의 접두부에 언어 이름 및 콜론이 추가되는 외국어 캐스트라는 as 연산자의 특수한 경우입니다. 다음과 같이 전체 유형 피연산자는 따옴표로 묶입니다.
null as "java:java.lang.Integer"
Java objID 유형은 기본이 아니므로 EGL은 이 경우 피연산자의 파트를 되돌립니다.
myVar as "objID:java"
다음 예제에서는 javaLib.store() 메소드를 사용한 외국어 캐스트를 보여줍니다.
  javaLib.store("storeId" as "objID:java", "myId" as "objID:java",
      "myMethod", myVar as "java:smallfloat");

이 외국어 캐스트는 EGL의 Java 액세스 함수에만 사용할 수 있습니다(Java 액세스 함수 참조). 이 함수는 이전 버전과의 호환성을 위해 EGL이 유지하는 이전의 함수입니다. 새 코드의 경우 더 강력한 ExternalType 구문을 사용하십시오.

예제

다음 예제에서 사전 값의 기본 유형은 ANY입니다. 숫자 표현식에서는 ANY 유형을 사용할 수 없으므로 값을 숫자 유형으로 캐스트해야 합니다.

aDict Dictionary{ a = 1, b = 4 };
result int;
result = (aDict.a as INT) + (aDict.b as INT);

오류 조건

대상 유형에 적합하지 않은 값을 캐스트하는 경우 EGL에 TypeCastException이 발생합니다.