Julia:模块中的全局变量

时间:2019-05-18 17:59:18

标签: julia

我正在尝试在Julia中创建一个模块,该模块在每次调用其功能之一时都会增加一个变量。

module A

a = 0

export get_and_increment_a

function get_and_increment_a()
    a = a + 1
    return a
end

end

using .A
println(get_and_increment_a())
println(get_and_increment_a())

我希望prinln()能给我

1

2

但是我有以下错误消息:

UndefVarError: a not defined

Stacktrace:
 [1] get_and_increment_a() at ./In[1]:8
 [2] top-level scope at In[2]:2

有人知道如何解决此问题吗?

2 个答案:

答案 0 :(得分:0)

该变量先前未声明,如果要使用而未声明该变量,则必须从某个库中导入或只在另一个文件中声明并导入到当前文件中。

答案 1 :(得分:0)

在函数体内移动a = 0。里面的所有变量都是局部的。 https://docs.julialang.org/en/v1/manual/variables-and-scoping/#Local-Scope