我创建了一个对象,然后尝试循环使用它
a = 0
for i in 1:2
a += 1
end
但是,这将导致以下错误:
UndefVarError: a not defined
我忘了循环是如何工作的或出了什么问题吗?
答案 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