줄리아에서 함수의 모든 변수 할당은 기본적으로 로컬이지만 global
키워드를 사용하여 대신 전역 변수에 할당 할 수 있습니다. 변수를 외 부이지만 비전 역 범위에 할당하는 방법은 무엇입니까?가장 가까운 외부 범위의 변수 캡처
3
A
답변
3
현재이 작업을 수행 할 수있는 방법이 없습니다. 당신이 할 수없는 하나의 범위 지정 행동이기 때문에 가끔 논의했지만, 아직 그것을 필요로하는 정말로 강력한 이유를 보지 못했습니다. 너 하나있어?
0
나는 몇 가지 코드를 생성 할과는 include_string 명령을 사용하여 실행이 :
불행하게도, '글로벌'키워드가 정말 모듈이있는 파일 내에서 범위된다 변수에 영향을주지 않습니다 (모듈 def 외부)이 정의되었습니다. 변수가 모듈의 범위를 벗어나면 내 손에 직접 변수를 함수로 전달하는 경우에만 에 액세스 할 수 있습니다. 그래서 같이
: 내가 제대로 여기에 글로벌 키워드를 사용하고 있습니까 :
module my_mod
function IDontWork(x:int)
global mp
include_string("Show(mp)")
end #function IDontWork
function IWork(x:int, mp::Minipipe)
include_string("Show(mp)")
end #function IWork
function Show(mp::Minipipe)
println(mp.txt)
end #Show
end #my_mod
#mp declared in global scope:
mp = Minipipe()
#FAILS:
my_mod.IDontWork(2)
#Only Way it WORKS:
my_mod.IWork(2, mp)
내 대답은 질문입니까? 이 일을하는 더 좋은 방법이 있습니까 ??
글로벌 변수를 변경하려는 동일한 이유. 그러나 어쨌든 순수한 함수 만 사용하려고합니다. – ThePiercingPrince