Использование struct из модуля внутри другого модуля в Julia - PullRequest
0 голосов
/ 15 января 2019

Я нашел похожие вопросы по SO, но ни один из них, похоже, не дает ответа, который подходит для моего случая.

У меня есть несколько модулей, в одном из которых я создаю изменчивую структуру, которую я хочу использовать в других. Все файлы находятся на одном уровне:

  • file_module_A.jl
  • file_module_B.jl
  • file_module_C.jl

В файле file_module_A.jl:

module A
   mutable struct MyType
      variable
   end
end

В файле file_module_B.jl:

module B
    # I need to import MyType here
end

В файле file_module_C.jl:

module C
    # I need to import MyType here
end

Я безуспешно пробовал следующее:

  • Использование напрямую: using .A не работает
  • Я не могу использовать: include("./file_module_A.jl") как в B, так и в C, потому что, когда они взаимодействуют друг с другом, я получаю ошибку, не могу конвертировать из Main.BA в Main.CA, так как include включает в себя копию всего код

Есть идеи? Заранее спасибо!

1 Ответ

0 голосов
/ 15 января 2019

Вам нужно использовать using ..A. using .A означает поиск A в текущем модуле (B в приведенном ниже примере), и вам нужно дополнительно ., чтобы подняться на один уровень модуля до Main, если вы запустите пример в РЕПЛ:

module A
    mutable struct MyType
        variable
    end
end

module B
    using ..A: MyType
end
...