在模块的嵌套结构中使用带有符号的内部模块

时间:2016-10-15 11:35:35

标签: module julia using

我有一个嵌套的模块结构,如下所示:

module TestMod
  module B
    export BB
    module BB

    end
  end
  module C
    module D
      #using ...B
      importall ...B 
      using BB # => ERROR: ArgumentError: Module BB not found in current path.
    end
  end
end

我希望在using BBmodule D,但似乎唯一的方法是为BB(例如using B.BB)写一个完整的路径,{{1} }或import没有帮助。

1 个答案:

答案 0 :(得分:4)

在您使用B后,您可以从当前模块进行相对导入,导出B的所有导出模块,包括BB。参见

julia> module TestMod
         module B
           export BB
           module BB
             x = 2
             export x
           end
         end
         module C
           module D
             using ...B 
             using .BB
             println(x)
           end
         end
       end
2
TestMod

语法using .BB表示在当前模块中使用名称为BB的模块,而using BB表示使用顶级模块BB;也就是说,它会查找Main.BB,这不是你想要的。