关于朱莉娅,我有几个问题。我做了一些在线挖掘,但无法找到答案。如果我有一个文件nameA.jl,它有很多变量(例如,物理常数,如质子的质量),当我需要在另一个文件中使用时,如何轻松导出/调用所有这些变量(即,nameB.jl)。
其次,创建某种"全球"的最佳方式是什么?变量通过" class" (我知道Julia没有类似于Python的类概念)或其他意思,所以我可以轻松访问项目中的任何其他文件并根据需要进行修改。
我确实尝试从谷歌获得这些答案,但无法找到任何帮助。
谢谢
答案 0 :(得分:3)
关于你的第一个问题:
PhysicalConstants.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
UsePhysicalConstants.jl
importall PhysicalConstants
this = fine_structure_constant * proton_electron_massratio
# 13.399053416751173
据我了解你的第二个问题:
ChangeableValues.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
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