Если вы новичок в Юлии, вам будет полезно понять, что у Юлии есть два механизма для загрузки кода .Заявление о том, что вам «необходимо знать, как создать библиотеку в Julia», подразумевает, что вы, скорее всего, захотите создать Julia module
docs и, возможно, package
docs .Но первый метод, указанный ниже, также может быть полезен для вас.
Два метода загрузки кода в Julia:
1.Включение кода через include("file_path_relative_to_call_or_pwd.jl")
документы
Выражение include ("source.jl") вызывает оценку файла source.jl вглобальная область действия модуля, в котором происходит вызов include.
Относительно , где ищется файл "source.jl":
Включенный путь, source.jl, интерпретируется относительнофайл, в котором происходит вызов include.Это упрощает перемещение поддерева исходных файлов.В REPL включенные пути интерпретируются относительно текущего рабочего каталога, pwd ().
Включение файла - это простой способ перенести код из одного файла в другой.Однако переменные, функции и т. Д., Определенные во включенном файле, становятся частью текущего пространства имен.С другой стороны, модуль предоставляет свое отдельное пространство имен.
2.Загрузка пакета через import X
или using X
документы
Механизм импорта позволяет загружать пакет - то есть независимую, повторно используемую коллекцию кода Julia, упакованнуюв модуле - и делает полученный модуль доступным под именем X внутри импортирующего модуля.
Что касается различия между этими двумя методами загрузки кода:
Кодвключение довольно просто: оно просто анализирует и оценивает исходный файл в контексте вызывающего.Загрузка пакетов построена поверх включения кода и является немного более сложной.
Относительно , где Джулия ищет файлы модулей, см. docs сводка:
Глобальная переменная LOAD_PATH
содержитСправочники Юлия ищет модули при вызове require.Его можно расширить с помощью push!
:
push!(LOAD_PATH, "/Path/To/My/Module/")
Размещение этого оператора в файле ~ / .julia / config / startup.jl будет расширять LOAD_PATH при каждом запуске Julia.Кроме того, путь загрузки модуля может быть расширен путем определения переменной среды JULIA_LOAD_PATH.
Один из простейших примеров модуля Julia см. Example.jl
module Example
export hello, domath
hello(who::String) = "Hello, $who"
domath(x::Number) = x + 5
end
и для примера пакета см. здесь .
Side Note Существует также запланированная (будущая) возможность библиотеки, аналогичная той, которая у вас может бытьиспользуется с другими языками.См. документы :
Библиотека (будущая работа): скомпилированная двоичная зависимость (не написана в Julia), упакованная для использования в проекте Julia.В настоящее время они обычно создаются на месте сценарием deps / build.jl в дереве исходных текстов проекта, но в будущем мы планируем сделать библиотеки первоклассных сущностей, непосредственно установленные и обновленные менеджером пакетов.