在 Julia 的另一个模块中使用模块中的结构
Using struct from a module inside another module in Julia
我在 SO 上发现了类似的问题,但其中 none 似乎给出了适合我的情况的答案。
我有几个模块,我在其中一个模块中创建了一个可变结构,我希望能够在其他模块中使用它。所有文件都在同一级别:
- 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
不行
- 我不能在 B 和 C 中使用:
include("./file_module_A.jl")
因为当它们相互交互时我得到错误无法从 Main.B.A 转换为 Main.C.A 因为 include
包括整个代码的副本
有什么想法吗?提前致谢!
您需要使用 using ..A
。 using .A
表示在当前模块中寻找A
(下例中的B
),需要额外的.
来升一级模块,到Main
如果你 运行 REPL 中的示例:
module A
mutable struct MyType
variable
end
end
module B
using ..A: MyType
end
我在 SO 上发现了类似的问题,但其中 none 似乎给出了适合我的情况的答案。
我有几个模块,我在其中一个模块中创建了一个可变结构,我希望能够在其他模块中使用它。所有文件都在同一级别:
- 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
不行 - 我不能在 B 和 C 中使用:
include("./file_module_A.jl")
因为当它们相互交互时我得到错误无法从 Main.B.A 转换为 Main.C.A 因为include
包括整个代码的副本
有什么想法吗?提前致谢!
您需要使用 using ..A
。 using .A
表示在当前模块中寻找A
(下例中的B
),需要额外的.
来升一级模块,到Main
如果你 运行 REPL 中的示例:
module A
mutable struct MyType
variable
end
end
module B
using ..A: MyType
end