首页 > 解决方案 > 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

任何人都知道如何解决这个问题?

标签: julia

解决方案


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


推荐阅读