2016-06-14 2 views
3

isdefined(:x) 변수 x가 현재 작업 공간에 정의되어 있는지 알려줍니다.변수가 Julia의 모듈 안에 정의되어 있는지 어떻게 확인합니까?

변수가 모듈 (내 보낸 변수가 아닌)에 정의되어 있는지 확인하려면 어떻게해야합니까? 나는 다음을 모두 시도했다 :

julia> module Test 
     x = 1 
     end 
Test 

julia> x 
ERROR: UndefVarError: x not defined 

julia> isdefined(:x) 
false 

julia> Test.x 
1 

julia> isdefined(:Test.x) 
ERROR: type Symbol has no field x 

julia> isdefined(:Test.:x) 
ERROR: TypeError: getfield: expected Symbol, got QuoteNode 

julia> isdefined(Test.:x) 
ERROR: TypeError: getfield: expected Symbol, got QuoteNode 

위의 모듈에서 x가 정의되어 있는지 확인하고 싶다.

답변

10

isdefined이 일을위한 선택 매개 변수가 필요가 있다고 생각합니다. http://docs.julialang.org/en/release-0.4/stdlib/base/#Base.isdefined (링크는 이전 버전이 될 수 있으므로 현재 지배적 인 검색 엔진은 도움이 될 것입니다) : 일반적인 채널을 통해 사용할 수

isdefined(Test, :x) 

추가 정보 : 다음 REPL에와 책에 ?isdefined을보십시오.

5

난 당신이

:x in names(Test) 
+7

또는'isdefined (Test, : x)'입니다. 'isdefined'에 optinal 파라미터가 있습니다. –

+0

@DanGetz 귀하의 의견은 정확합니다, 당신은 답변으로 게시 할 수 있습니까? – SalchiPapa

+0

@DanGetz 답변에 약간 더 간결하게 대답 하겠지만 이름 (모듈)에 대해서도 알아두면 유용했습니다. 감사!! –

관련 문제