专栏
标签
for 循环中定义的局部变量在第 2 次循环中无法调用
技术分享
发布于 2025-08-06 16:31:22
查看 1过去300天

问题现象

如下图,在第一次循环中定义了局部变量defdg,但是第2次循环中打印此变量时报错:
image.png

代码:

a=1

for i=1:2

if a==1

bwq=2

println("a=$(a)")

else

bwq =3

println(defdg)

end

a+=1

defdg=100

end

解决方法

在Julia中,for循环涉及到作用域的问题,循环内部定义的同部变量默认在每次迭代之间是不可见的。每次循环迭代都会重新创建变量,如果希望在两次迭代之间共享值,需要将该变量放在循环外部。

通过添加local可以将变量定义为局部变量,添加global定义为全局变量,将上述代码修改为如下:

a=1

for i=1:2

local defdg=100

if a==1

bwq==2

println("a=$(a)")

else

bwq=3

println(defdg)

end

global a +=1

end

即可解决报错问题,得到正确结果:
image.png

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境
科学计算

全部回答

暂无数据
暂无数据
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天