gpt4 book ai didi

julia - 全局变量未在 Julia 中定义

转载 作者:行者123 更新时间:2023-12-04 23:20:26 24 4
gpt4 key购买 nike

之前有人问过类似的问题 here ,但根据该问题的答案和 Julia 手册,以下 .jl 脚本应该可以工作。

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

我显式地声明了一个全局变量,然后尝试在函数内修改它。但是,当我尝试运行函数 test1() 时,它说该变量未定义。
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

我尝试了不同的方法,如果我只访问 test1() 中的变量,它确实可以工作,例如 print(myVar);有谁知道我做错了什么?

最佳答案

我想你需要把 global在需要访问全局变量的函数内部。

以下对我有用:

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

输出:
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 - 全局变量未在 Julia 中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28424470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com