循环中未定义的对象

时间:2020-10-10 13:38:23

标签: julia

我创建了一个对象,然后尝试循环使用它

a = 0
for i in 1:2
        a += 1
end

但是,这将导致以下错误:

UndefVarError: a not defined

我忘了循环是如何工作的或出了什么问题吗?

1 个答案:

答案 0 :(得分:4)

重点是您的a是全局变量,并且在1.0和1.4.2之间的Julia版本中,引入了循环内变量的局部作用域。更准确地说,如果您未明确表示要突变全局变量(global a += 1),则会在局部范围内引入新变量。

最好的办法是升级到Julia 1.5。朱莉娅1.5引入了soft scoping in the REPL

如果您需要坚持使用当前的Julia版本,可以使用global关键字或将代码放置在函数中,或者使用Jupyter笔记本(具有软作用域)或将代码围绕let ... end块,例如:

 let
    a = 0
    for i in 1:2
        a += 1
    end
    a
end
相关问题