是否有将字符串转换为Expr的方法?我尝试了以下但是它不起作用:
julia> convert(Expr, "a=2")
ERROR: MethodError: Cannot `convert` an object of type String to an object of type Expr
This may have arisen from a call to the constructor Expr(...),
since type constructors fall back to convert methods.
julia> Expr("a=2")
ERROR: TypeError: Expr: expected Symbol, got String
in Expr(::Any) at ./boot.jl:279
答案 0 :(得分:2)
正如科林所说,要转换为Expr
(或Symbol
),请使用parse
。
然后评估您使用Expr
的结果eval
。
两者在一起:
julia> eval(parse("a = 2"))
2
答案 1 :(得分:1)
请注意,从Julia 1.0开始,此功能不再起作用。通常,如果您想在Julia 1.0中评估字符串表达式,则应该一直使用表达式,例如:(a=2)
julia> parse("a=2")
ERROR: MethodError: no method matching parse(::Expr)
julia> @show eval(:(a=2))
eval($(Expr(:quote, :(a = 2)))) = 2
2