나는 Julia를 사용하기 시작했습니다. 함수의 변수 집합을 정의하기 위해 eval (Julia에서)을 사용하려고합니다. 이 전 2 동일한 v1을 설정하고 싶은 말은하자에 println 0을 반환 (V1의 초기 값) 이후,Julia에서 eval을 사용하여 varargs 처리
fun_test("v1", "2");
그것은 작동하지 않습니다
function fun_test(varargs...)
v1 = 0;
if length(varargs) > 0
j = collect(linspace(1,length(varargs)-1,length(varargs)/2));
for i in j
expr_vargs = parse("$(varargs[i]) = $(varargs[i+1]);");
eval(expr_vargs);
end
end
println(v1)
end
는 같은 함수를 호출. 그러나 Julia의 터미널에서 유사한 평가판 호출을 실행하면 작동합니다.
왜 작동하지 않는지와 문제를 해결하는 방법을 설명해주십시오.
당신의'expr_vargs'는 괜찮습니다. 그것은 '평가판'입니다 ... – Memming
안녕하세요 @. 무슨 뜻인지 분명히 설명해 주시겠습니까? – merch
'eval'은 전역 범위에서 작동하지만'v1'은'v1 = 0' 행 때문에 로컬입니다. –