Julia Language
모듈
수색…
통사론
- 모듈 모듈; ...; 종료
- 모듈 사용
- 가져 오기 모듈
모듈에서 코드 줄 바꾸기
module
키워드는 module
을 시작하는 데 사용할 수 있습니다.이 module
을 사용하면 코드를 구성하고 네임 스페이스를 지정할 수 있습니다. 모듈은 일반적으로 export
기호로 구성된 외부 인터페이스를 정의 할 수 있습니다. 이 외부 인터페이스를 지원하기 위해 모듈에는 공개되지 않도록 내부에 알려지지 않은 내부 함수 및 유형 이있을 수 있습니다.
일부 모듈은 주로 형식 및 관련 함수를 래핑하기 위해 존재합니다. 일반적으로 이러한 모듈은 유형 이름의 복수형으로 명명됩니다. 예를 들어 Building
유형을 제공하는 모듈이있는 경우 이러한 모듈 Buildings
호출 할 수 있습니다.
module Buildings
immutable Building
name::String
stories::Int
height::Int # in metres
end
name(b::Building) = b.name
stories(b::Building) = b.stories
height(b::Building) = b.height
function Base.show(io::IO, b::Building)
Base.print(stories(b), "-story ", name(b), " with height ", height(b), "m")
end
export Building, name, stories, height
end
그런 다음 모듈을 using
문과 함께 사용할 수 있습니다.
julia> using Buildings
julia> Building("Burj Khalifa", 163, 830)
163-story Burj Khalifa with height 830m
julia> height(ans)
830
모듈을 사용하여 패키지 구성
일반적으로 패키지 는 하나 이상의 모듈로 구성됩니다. 패키지가 커짐에 따라 패키지의 기본 모듈을 더 작은 모듈로 구성하는 것이 유용 할 수 있습니다. 일반적인 관용구는 이러한 모듈을 기본 모듈의 하위 모듈로 정의하는 것입니다.
module RootModule
module SubModule1
...
end
module SubModule2
...
end
end
초기에는 루트 모듈이나 서브 모듈 모두 서로의 내 보낸 기호에 액세스 할 수 없습니다. 그러나이 문제를 해결하기 위해 상대적인 수입이 지원됩니다.
module RootModule
module SubModule1
const x = 10
export x
end
module SubModule2
# import submodule of parent module
using ..SubModule1
const y = 2x
export y
end
# import submodule of current module
using .SubModule1
using .SubModule2
const z = x + y
end
이 예제에서 RootModule.z
의 값은 30
입니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow