Julia 局部变量未在表达式 eval 中定义

Gra*_*ale 6 eval metaprogramming julia

鉴于以下功能,

function floop(exp)
    a = 5
    b = 10
    ex = Expr(:call, :+, 1, exp);
    return eval(ex);
end
Run Code Online (Sandbox Code Playgroud)

如果我然后跑

floop(Symbol("b"))
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息,说b未定义。为什么这不起作用?我怎样才能使这项工作?

Osc*_*ith 5

让 Julia 运行得很快的关键之一是 eval 始终在全局范围内运行。这意味着它永远不能引用局部变量。