У меня есть модуль, содержащий ряд математических и физических констант. В настоящее время я могу получить доступ к переменным через пространство имен:
constants.jl
module Constant
export c
const c = 299792458 # m/s
end
working_example.jl
include("constants.jl")
println(Constant.c) # 299792458
Однако я ищу доступ к переменным модуля как к локальным переменным, например, E=m*c^2
;
ideal.jl
include("constants.jl")
"""
something here
"""
println(c) # 299792458
Я предполагаю, что для достижения этого мне нужно реализовать либо using
, либо import
, однако в обоих сценариях я получаю ошибку
ERROR: LoadError: ArgumentError: Package Constant not found in current path:
- Run `import Pkg; Pkg.add("Constant")` to install the Constant package.
Добавление этого к коду ideal.jl
не решает проблему:
not_working_example.jl
include("constants.jl")
import Pkg
Pkg.add("Constant")
import Constant
println(c)
, который завершается ошибкой
ERROR: LoadError: The following package names could not be resolved:
* Constant (not found in project, manifest or registry)
Please specify by known `name=uuid`.
Как мне решить эту проблему?
P.S. Мне известно, что нынешнее соглашение об именах не является идеальным - оно не задуманно и может измениться позже. Я использую Julia v1.0.2:
$ julia -v
julia version 1.0.2