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

`using` an inner module with its symbol, in a nested structure of modules

我有一个这样的模块嵌套结构:

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

我想在module D中做using BB,但似乎唯一的方法是为BB写一个完整路径(例如using B.BB),importusing 没有帮助。

使用 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,这不是您想要的。