В чем разница между `use` и` import` в Julia при построении модуля?

Вопрос: В чем разница между using и import в Julia, когда я создаю свой собственный модуль?

Мое предположение основано на чтении документов: using используется для переноса другого модуля в пространство имен текущего модуля. import используется для передачи определенных типов/функций/переменных из других модулей в пространство имен текущего модуля.

Итак, как я ошибаюсь?

Ответы

Ответ 1

The Julia Документация по модулям Julia гласит:

Только ключевое слово import [...] работает с одним именем за раз. Он не добавляет модули для искал, как using делает. import также отличается от using тем, что функции должны быть импортированы с использованием import для расширения новыми методы. [...] Функции, имена которых видны только через using, не могут быть расширены.

(Акцент мой.)

Например, вы можете использовать import для добавления методов в Base.show, чтобы красиво печатать ваши собственные типы, но не с using.

Существует также importall, который импортирует все экспортированные имена модуля.

(Этот ответ относится к Julia 0.6; документация была перефразирована для 1.0.)