Я зацикливаюсь на некоторых основах сферы в выражениях Юлии. Может кто-нибудь помочь мне рассказать, что происходит внутри цикла for ниже? Внутри lopp первое выражение работает, а второе - нет, хотя оба работают с переменными из глобальной области.Заполнение словаря julia с массивом символов
x = 1
glob_obj = :x
eval(:(println($glob_obj)))
eval(:(println("$glob_obj")))
# Prints
# 1
# x
objs = [:x]
for obj = objs
eval(:(println($obj)))
eval(:(println("$obj")))
end
# Prints
# 1
# ERROR: obj not defined
# in anonymous at no file:3
Для контекста, я в конечном счете заинтересован в написании функции Julia, заполняющую словарь из массива символов в локальной области видимости, то есть функции, как
x = 1
y = "foo"
populate_dict([:x, :y]) # ...resulting in
{ "x" => 1, "y" => "foo"}
Важно отметить, что я бы чтобы иметь возможность использовать это в любой функции и иметь возможность выбирать переменные из локальной области. Для еще большего контекста это легко легко записать файлы JSON с произвольными списками символов.