【问题标题】:Julia 1.1 x=x+1 in for loop returned errorJulia 1.1 x=x+1 in for 循环返回错误
【发布时间】:2019-04-01 06:05:26
【问题描述】:

我正在使用 Julia 1.1,并尝试使用 for 循环执行以下简单操作:

i_index=1;
for index in (1:100)
    i_index=i_index+1;
end

但是,我收到一条错误消息:

ERROR: UndefVarError: i_index not defined

我已经尝试了几次和变体,但它们都失败了。这是一个错误吗?或者为什么 Julia 不能做这个简单的迭代加法?

【问题讨论】:

  • 看这个帖子:stackoverflow.com/questions/52396269/…我假设你需要添加global,像这样:global i_index=i_index+1;
  • @SebastianKaczmarek 谢谢。但是你能解释一下吗? (我什至没有定义一个函数,而只使用了一个 for 循环......)那个“全局”来自哪里?
  • 因为您没有定义函数,所以您在全局范围内工作,因此,您在全局范围内定义了i_index,因此您需要使用global 访问它。在函数中,您的代码将按原样工作
  • 正确,但不是 environment 您应该将其称为 scope,这是可以看到变量的代码块
  • While without global的可能重复

标签: julia


【解决方案1】:

在 REPL 中:

i_index=1;
for index in (1:100)
    global i_index;
    i_index=i_index+1;
end

这是因为范围可变,请参阅Julia documentation。请注意,那里的示例与 REPL 有关。

【讨论】:

  • 真的吗?您只是从评论中窃取了我的建议,甚至没有尝试向 OP 解释 为什么 您的代码有效而 OP 无效。非常低质量的答案
  • 我没有,我进入 Julia 文档发现了这个:docs.julialang.org/en/v1/manual/variables-and-scoping/…。我会更改我的答案以反映这一点。
  • 请至少向 OP 解释这里的实际问题是什么,以便未来的读者也可以从中受益
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
相关资源
最近更新 更多