关于Julia1.0及以后版本的for循环产生错误"ERROR: UndefVarError: variable not defined"的解决方法

目录

一、错误

二、目前的解决方法

三、结语


一、错误

1.在Julia1.0版本中,定义在for循环之外的变量不能出现在for循环里,否则会如下错误:

ERROR: UndefVarError: variable not defined

2.这个错误似乎是在0.7版本开始的,详情可以看这个链接:https://github.com/JuliaLang/julia/issues/28789

3.例如如下代码就会报错:

n = 0
for i in 1:10
    n = i
end
print(n)

二、目前的解决方法

1.在for循环里面声明global,之后这个变量在for循环里不用再声明范围

​
n = 0
for i in 1:10
    global n = i
end
print(n)

for i in 1:10
    n += i
end
print(n)
​

2.在for循环之前声明global是无意义的,还是会报错

3.使用这个也是没用的:

using ​​​​​​​SoftGlobalScope

三、结语

1.从0.6升级到1.0的小伙伴,尤其是新手估计看到这里感到很奇怪、很难受,但这确实在某种意义上使得代码更加严谨。

2.由于Julia拥有很多数学计算工具库以及使用方便的api,因此代码中很难再看到自己写代码出现for循环的情况,因为这可以通过其他方式进行处理(例如通过简洁的写法代替冗长的部分

3.Julia语言高效、动态,可组合性强,愿它今后发展更加迅速,为IT届做出更大的贡献吧!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老兵安帕赫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值