Как создать модуль в Julia?

#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
 

но при импорте его для использования он выдает ошибку, какое-либо решение?

Ответ №1:

Этот модуль был определен в пространстве Main , поэтому вам нужно добавить точку . перед именем модуля:

 julia> using .MyModule

julia> my_abs(-4)
4
 

Просто обратите внимание, что это using Main.MyModule будет работать так же хорошо, просто требуется больше набора текста.

Если вы хотите скорее написать using MyModule (без точки . ни Main. ), вам нужно поместить этот модуль в пакет Julia. Вы найдете много документации по созданию пакетов, но самыми простыми шагами являются:

 using Pkg
Pkg.generate("MyModule")
 

В папке src вы найдете MyModule.jl , отредактируете ее и вставьте определение модуля.

Теперь вы готовы это сделать:

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

julia> using MyModule