为什么在交互式julia会话中本地/全局范围仍然失败?

时间:2019-06-04 16:36:38

标签: scope julia

我最近刚移到Julia 1.1 Version 1.1.0 (2019-01-21),但是我认为这也是报告here的1.0版本的问题。对于虚拟变量求和,会出现错误:

julia> a = 0.0
0.0
for i in 1:10
       a += 1
end
ERROR: UndefVarError: a not defined

现在,强制变量的范围:

julia> local a
julia> for i in 1:10
       a += 1
       end
ERROR: UndefVarError: a not defined

执行global a均返回相同的错误。现在有什么解决方案?

更多:uhmm也执行let .. end trick不会返回正确的值

julia> let a = 0.0;
     for i in 1:10
       a+= 1
     end
     end

julia> a
0.0

编辑:请注意,这仅在REPL中,而不在jupyter或脚本中。在后两种情况下不会出现该错误。

1 个答案:

答案 0 :(得分:2)

您可以在a循环内将for声明为全局变量:

julia> a = 0
0

julia> for i in 1:10
           global a += 1
       end

julia> a
10