gpt4 book ai didi

scope - 在 Julia 中,有没有办法将变量从局部作用域传递到封闭的局部作用域?

转载 作者:行者123 更新时间:2023-12-01 08:55:26 24 4
gpt4 key购买 nike

我正在编写一些 Julia 代码,封装在一个函数中以提高性能。我需要将在循环中创建的变量传递给外部循环,但出于性能原因想避免使用全局变量:

function f()
for i=1:1
for j=1:1
a=2
end
println(a)
end
end
f()

这会引发错误,因为 i-loop 的作用域不知道变量 a。首先在相关范围内定义 a 有效:

function f()
for i=1:1
a=0
for j=1:1
a=2
end
println(a)
end
end
f()

不过我对这个解决方案不是很满意,因为它需要预先定义我想要传递的每个变量。没有直接的方法将变量传递到封闭范围吗?

最佳答案

我认为没有直接的方法(除了global a = 2 你想避免的)。

最接近你想要的是使用local:

function f()
for i=1:1
local a
for j=1:1
a=2
end
println(a)
end
end
f()

关于scope - 在 Julia 中,有没有办法将变量从局部作用域传递到封闭的局部作用域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57788621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com