Julia 自定义模块变量范围

Julia custom module scope of variables

我开始用 Julia 编写我的第一个自定义模块。 我正在做的是将所有文件写入一个文件夹,然后将它们导入 ModuleName.jl 文件并最终编写一个测试程序,该程序执行一个预编译的 main() 函数,该函数调用我的自定义模块(我喜欢保留一个模块化编程风格)。

问题是我想我在使用 usingimport 关键字时遗漏了一些东西。在我的测试文件中,我有以下几行:

push!(LOAD_PATH,"./ModuleNameFolder")
using ModuleName

我认为 ModuleName 的函数如果加载了 using 可以在没有显式 ModuleName.myfunct() 的情况下调用,但只能通过 myfunct() 调用,但事实并非如此。如果我省略 ModuleName,编译器将抛出一个 UndefVarError。 我究竟做错了什么?我想把我的自定义模块的所有功能都放在主范围上

欢迎来到朱莉娅。 precompiled main() function 是什么意思? Julia 中的测试通常在特定文件上设置,该文件在每次将代码推送到您用于托管代码的存储库时自动 运行。

无论如何,请尝试 include ./ModuleName,然后是 using .ModuleName(注意圆点)。 并且记得 export ModuleName 中您想要直接提供的对象。

看看我的教程:https://syl1.gitbook.io/julia-language-a-concise-tutorial/language-core/11-developing-julia-packages