Found an issue with the book? Report it on Github.

가져오기(Importing)

가져오기(Importing)

이전에 살펴본 것처럼 기본적으로 가져오기에는 세 가지 형식이 있는데, 다른 곳에서 정의된 이름을 참조하는 모든 정의에 대해 import 문은 "별칭(alias)"을 만듭니다.

첫 번째 형식은 다음과 같이 정규화된 이름으로 정의를 가져오는 경우 입니다.

import Modelica.SIunits.Temperature;

이러한 가져오기의 결과는 Temperature 이름에 대한 참조가 정규화된 이름 Modelica.SIunits.Temperature 로 매핑됩니다. 즉, import 문에 의해 도입된 별칭은 Temperature 이며 Modelica.SIunits.Temperature 에 있는 정의에 매핑됩니다. 이 형식의 가져오기를 사용하면 별칭의 이름은 항상 가져올 이름의 마지막 요소와 일치합니다(예: Temperature).

도입된 별칭이 가져온 이름의 마지막 요소와 다르기를 원하는 경우가 있는데, 이 경우 별칭에 대한 대체 이름을 명시적으로 도입할 수 있습니다. 예를 들면 아래와 같습니다.

import DegK = Modelica.SIunits.Temperature; // Kelvin

이러한 가져오기 후에는 DegK 별칭을 사용하여 Modelica.SIunits.Temperature 를 참조할 수 있습니다. 대체 이름을 제공하면 이름 충돌을 피하거나 단순히 모델을 더 읽기 쉽게 만들 수 있습니다.

마지막으로 패키지 내의 모든 정의를 현재 범위로 가져올 수 있는데, 이것은 와일드카드 가져오기로 수행할 수 있습니다.예를 들어 Modelica.SIunits 패키지의 모든 정의를 가져오려면 다음 import 문을 사용합니다.

import Modelica.SIunits.*;

이러한 가져오기는 Modelica.SIunits 에 있는 정의만큼 많은 별칭을 생성합니다.사용 가능한 유일한 옵션은 가져온 패키지의 정의와 동일한 이름을 각 별칭에 지정하는 것입니다(즉, 별칭에 대한 대체 이름을 할당할 수 없음).

import Modelica.SIunits.{Temperature, Length};

바로 위에 있는 예제는 와일드카드 문제를 피하면서 여러가지를 가져올 때 발생하는 반복 구문을 피합니다. 이 기능은 모델리카 언어 사양 버전 3.3에서 도입되었습니다.