首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >朱莉娅-错误: UndefVarError:未定义

朱莉娅-错误: UndefVarError:未定义
EN

Stack Overflow用户
提问于 2019-06-27 11:20:16
回答 2查看 7.5K关注 0票数 2

我有一段代码在循环之外工作,但在循环中失败。

请参见:

代码语言:javascript
复制
julia> margin = 1
1

julia> rat = [-0.3 ; -0.8]
2-element Array{Float64,1}:
 -0.3
 -0.8

julia> beta = 0
0

julia> for q=1:2
           if rat[q] - margin > beta
               beta = rat[q] - margin
           end
       end
ERROR: UndefVarError: beta not defined
Stacktrace:
 [1] top-level scope at ./REPL[803]:2 [inlined]
 [2] top-level scope at ./none:0

julia> q=1
1

julia> if rat[q] - margin > beta
           beta = rat[q] - margin
       end

julia> q=2
2

julia> if rat[q] - margin > beta
           beta = rat[q] - margin
       end

有人能解释这个错误(" error : UndefVarError: beta未定义“)吗?

(我有Julia v"1.1.1",在Mac OSX上)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-27 11:36:20

在变量之前添加global对我有用:

代码语言:javascript
复制
for q=1:2
  if (rat[q] - margin) > beta
    global beta = rat[q] - margin
  end
end
票数 2
EN

Stack Overflow用户

发布于 2019-06-27 11:43:57

朱莉娅有一种非常特殊的处理全球范围的方法。变量范围的规则可以在这里阅读:https://docs.julialang.org/en/v1/manual/variables-and-scoping/#Global-Scope-1。在Julia-1.0中引入了新的范围规则,它们在社区中引起了很大争议,特别是因为在全局范围中for循环的不直观行为。对于那些非常感兴趣的人,这里有一个关于利弊的讨论:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56789914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档