Julia变量值重置

时间:2014-03-03 22:02:10

标签: function variables initialization julia

在C ++的强大背景之后,我刚刚开始在Julia工作。我有一个问题,我的整数变量被重置为我在我的程序开始时初始化它们。即使我更改了函数内的变量值。任何人都可以解释为什么会这样吗?

num = 0

function getNum()
    num = 1
end

getNum()
num    #this returns 0, not 1

这是一个问题,因为我需要在另一个函数中引用该变量。

1 个答案:

答案 0 :(得分:2)

num位于global scope中(请注意,相同的行为适用于例如Python)

如有必要,您可以通过引用全局来修改它:

function getNum()
   global num = 1
end

但是,值得考虑是否有更有效的方法来构建代码。全局变量在某些情况下可能很有用,但它们也会使代码更难以推理。