Cur*_*ity 5 global export julia
我有几个关于朱莉娅的问题。我在网上进行了一些挖掘,但找不到任何答案。如果我有一个名为 A.jl 的文件,其中包含大量变量(例如,质子质量等物理常数),当我需要在另一个文件中使用时(即,如何轻松导出/调用所有这些变量) ,名称B.jl)。
其次,通过“类”(我知道 Julia 没有类似于 Python 的类概念)或其他方式创建某种“全局”变量的最佳方法是什么,这样我就可以轻松访问项目中的任何其他文件并根据我的需要进行修改。
我确实尝试从谷歌获得这些答案,但找不到任何帮助。
谢谢
对于你的第一个问题:
物理常数.jl
module PhysicalConstants
export fine_structure_constant, proton_electron_massratio
const fine_structure_constant = 7.2973525664e-3
const proton_electron_massratio = 1836.15267247
end # module
Run Code Online (Sandbox Code Playgroud)
使用物理常数.jl
importall PhysicalConstants
this = fine_structure_constant * proton_electron_massratio
# 13.399053416751173
Run Code Online (Sandbox Code Playgroud)
据我了解你的第二个问题:
可变值.jl
module ChangeableValues
export changeable_value, change_value, value
type Changeable{T}
value::T
end
typeof_value{T}(x::Changeable{T}) = T
value{T}(x::Changeable{T}) = x.value
# changeable_value is const for speed
# changeable_value.value is not const
const changeable_value = Changeable(0)
function change_value{T}(new_value::T)
if T == typeof_value(changeable_value)
changeable_value.value = new_value
else
throw(TypeError())
end
return nothing
end
end # module
Run Code Online (Sandbox Code Playgroud)
UseChangeableValue.jl
import ChangeableValues: changeable_value, change_value, value
println("value = ", value(changeable_value)) # 0
change_value(1)
println("value = ", value(changeable_value)) # 1
change_value(2)
println("value = ", value(changeable_value)) # 2
# it remains 2 when imported elsewhere until it is changed again
Run Code Online (Sandbox Code Playgroud)