假设我想从模块内部访问包含范围的类型。具体来说:
文件Englobing.jl
using myModule
type MyType
a::Float64
b::Vector{Float64}
end
t = MyType( 1., [ 1., 2. ] )
x = [ .5, .5 ]
myFunc( x, t )
文件myModule.jl
module myModule
export myFunc
function myFunc( x::Vector{Float64}, z::MyType )
[ operations ]
end
end
在这种情况下,我希望能够从模块myModule内部访问类型MyType,而无需使用
global
。 最佳答案
选项1:
您也可以导出类型。例如。如果Englobing.jl
是模块,则可能有:
export MyType
然后,在您的
myModule.jl
文件中,您可以拥有:using Englobing
选项2
如果
Englobing.jl
不是模块(当前未将其写为),则可以使用include("Englobing.jl")
在
MyModule.jl
之内。但是,这两种情况都取决于
Englobing.jl
是否使用MyModule.jl
中的某些内容(函数,类型,对象等),而同时MyModule.jl
使用Englobing.jl
中的某些内容。如果期望的结果是要发生这样的情况,我不相信朱莉娅会做到这一点,尽管我也不太清楚为什么这也是理想的。关于types - Julia :如何从模块内部访问类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39024459/