全局变量未在 Julia 中定义 [英] Global variable not defined in Julia
本文介绍了全局变量未在 Julia 中定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
A similar question has been previously asked here, but according to the answer to that question and the Julia manual, the following .jl script should work.
global myVar = spzeros(10,1);
myVar[3] = 1;
function test_base()
test1();
end
function test1()
myVar = [ i > 0 ? 2 : 0 for i in myVar] #doesn't work
end
I explicitly declare a variable global and then try to modify it inside a function. However when I attempt to run the function test1(), it says that the variable is undefined.
julia> VERSION
v"0.3.5"
julia> include("test.jl")
test1 (generic function with 1 method)
julia> test_base()
ERROR: myVar not defined
in test1 at /home/clifton/Julia/ca-1/test.jl:9
in test_base at /home/clifton/Julia/ca-1/test.jl:5
I've tried different things, and it does work if I just access the variable in test1(), like print(myVar);
Does anyone know what I'm doing wrong?
解决方案
I think you need to put global
inside the function that needs to access the global variable.
The following works for me:
myVar = spzeros(10,1);
myVar[3] = 1;
function test_base()
test1();
end
function test1()
global myVar
myVar = [ i > 0 ? 2 : 0 for i in myVar] #doesn't work
end
Output:
julia> include("test.jl")
test1 (generic function with 1 method)
julia> test_base()
10-element Array{Int64,1}:
0
0
2
0
0
0
0
0
0
0
这篇关于全局变量未在 Julia 中定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文