(Julia 1.0) Доступ к переменным модуля как локальный? - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть модуль, содержащий ряд математических и физических констант. В настоящее время я могу получить доступ к переменным через пространство имен:

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

1 Ответ

0 голосов
/ 18 ноября 2018

пытались ли вы

include("constants.jl")
using .Constant

println(c)

см. документ

...