热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

使用for循环在julia1.0.0中确定范围对初学者有意义吗?

如何解决《使用for循环在julia1.0.0中确定范围对初学者有意义吗?》经验,为你挑选了1个好方法。

在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用户是否直观.这对我来说并不直观,尽管我终于能够在很长一段时间后解决它.

这是令人困惑的部分.我认为在初始化时创建变量global会解决问题.它不是:

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

c上面的全局范围会流入for循环似乎很自然,但for循环的第一次初始化c显然会创建一个不同的for循环局部c.

这对经验丰富的julia开发者有意义吗?



1> crstnbr..:

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

但请注意,一旦将其包装到本地范围(例如函数或let块)中,一切都按预期工作.

请参阅我的答案:Julia中的变量范围,以获取更多信息/参考资料.


推荐阅读
author-avatar
mobiledu2502921883
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有