gpt4 book ai didi

scope - 在 julia 1.0.0 中使用 for 循环确定范围对初学者有意义吗?

转载 作者:行者123 更新时间:2023-12-04 02:01:12 30 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

2年前关闭。




Improve this question




在 julia 1.0.0 中,我得到以下 for 循环范围行为:

julia> counts = 0
0
julia> for i in 1:10
counts += 1
end
ERROR: UndefVarError: counts not defined

我发现解决方案是制作 counts变量 globalfor环形。

julia> for i in 1:10
global counts += 1
end
julia> counts
10

然而,作为 julia 的新手,这种行为几乎让我放弃了这门语言,因为它似乎与其他语言如此不同。

现在我看到了上面的解决方案,我想知道这对初学 julia 用户来说是否直观。这对我来说并不直观,尽管我在很长一段时间后终于能够解决它。

这是令人困惑的部分。我认为在初始化时将变量设为全局变量可以解决问题。它不是:

julia> global c = 0
julia> for i in 1:10
c += 1
end
ERROR: UndefVarError: c not defined
c 的全局范围似乎很自然。以上将流入for循环,但 c的第一次初始化在 for 循环中显然创建了一个不同的 for 循环本地 c .

这对有经验的 julia 开发人员有意义吗?

最佳答案

我认为大家一致认为,对于交互式使用,这种行为不是最佳的,它很可能很快就会改变为 REPL、IJulia 等中的预期行为。你可以在这里找到讨论:https://github.com/JuliaLang/julia/issues/28789

但是请注意,一旦将其包装到本地作用域(例如函数或 let)中,一切都会按预期工作。例如块。

在此处查看我的回答:Scope of variables in Julia有关更多信息/引用。

关于scope - 在 julia 1.0.0 中使用 for 循环确定范围对初学者有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52187073/

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