Found an issue with the book? Report it on Github.
이전에 살펴본 것처럼 기본적으로 가져오기에는 세 가지 형식이 있는데, 다른 곳에서 정의된 이름을 참조하는 모든 정의에 대해 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에서 도입되었습니다.