如何在 Julia 中创建模块?

Sam*_*nza 2 julia

我创建了这个模块

module MyModule
    export my_square, my_abs, my_minus
    my_square(x::Int64) = x * x
    my_abs(x) = (x>=0) ? x : -x
    my_add(x,y) = x + y
    my_minus(x,y) = x - y
    my_multiply(x,y) = x * y
end
Run Code Online (Sandbox Code Playgroud)

但是当导入它使用它时它会引发错误,有什么解决方案吗?

Prz*_*fel 6

该模块在 的空间中定义,Main因此您需要.在模块名称前添加一个点:

julia> using .MyModule

julia> my_abs(-4)
4
Run Code Online (Sandbox Code Playgroud)

请注意,这using Main.MyModule也可以工作,只是需要更多的打字。

如果您想编写using MyModule(不带点.Main.),则需要将该模块放入 Julia 包中。你会发现很多关于创建包的文档,但最简单的步骤是:

using Pkg
Pkg.generate("MyModule")
Run Code Online (Sandbox Code Playgroud)

在文件夹 src 中,您将找到MyModule.jl,编辑它并粘贴模块定义。

现在你可以做:

julia> Pkg.activate(".\\MyModule") #use the correct path
    Activating environment at `MyModule\Project.toml`

julia> using MyModule
Run Code Online (Sandbox Code Playgroud)