2017-10-25 7 views
0

에 나는 모듈 내부에 있지만 성공하지 열거를 사용하는 것을 시도하고있다 : 열거는 모듈

# module for testing enums 
module EE 
export EnumTest 
@enum EnumTest uu ii dd 
end # module 

내가 REPL에서 importall EE했다. 그 후 I는 결과 (예상)

(uu::EE.EnumTest = 0, ii::EE.EnumTest = 1, dd::EE.EnumTest = 2) 

으로 instances(EE.EnumTest)하여 열거 된 값의 유무를 조사했다.

uu::EE.EnumTest을 사용하여 값을 반환하거나 인쇄하려고하면 단지 UndefVarError 예외가 발생합니다. 나는 이것을 기대하지 않는다. 어떻게 값을 사용 하는가?

답변

3

모듈에있는 export 문을 사용하면 목록에있는 이름 만 모듈 외부에서 사용할 수 있습니다. 열거 형의 전체 유형과 인스턴스가없는 EnumTest 만 나열했습니다.

인스턴스에 모듈 이름 (EE.uu)으로 정규화하거나 내보내기 목록 (export EnumTest, uu, ii, dd) 및 using EE에 추가하여 인스턴스에 액세스 할 수 있습니다. importall은 여기에 필요하지 않으며 0.7에서 이와 같은 경우에는 using을 사용하도록 권장되지 않습니다.

+0

그래서 열거 형 자체에 열거 형 클래스가있는 C++ 또는 열거 형 D가있는 네임 스페이스를 제공 할 방법이 없습니까? – Quonux

+0

그냥 (하위) 모듈에 넣고 내보내지 마십시오. 자동이 아니지만 매우 쉽게 할 수 있습니다. –

+2

다른 모듈 안에 포함되어 있다면'.EE' 사용을 원할 것입니다. –