我正在从Julia 0.7升级到1.0。似乎Julia在变量作用域方面的规则从0.7到1.0发生了变化。例如,我想运行一个简单的循环:
num = 0
for i = 1:5
if i == 3
num = num + 1
end
end
print(num)
在Julia 0.7(以及大多数其他语言)中,我们可以期望循环后的结果为
num = 1
。然而,在Julia 1.0中会出现UndefVarError: num not defined
错误。通过使用let
关键字,我知道可以解决这个问题。let
num = 0
for i = 1:5
if i == 3
num = num + 1
end
end
print(num)
end
它将打印出1。但我想在循环外和let块之外获取num = 1。一些答案建议将所有代码放在let块中,但这会导致其他问题,包括逐行测试时的UndefVarError。有没有其他方法而不是使用let块?谢谢!