2016-12-22 12 views
2

Есть ли способ преобразования строки в Expr? Я попытался следующие, но это не работает:Как преобразовать строку/преобразовать строку в 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 
+6

Я думаю, что вы хотите 'синтаксического анализа («а = 2»)' (она будет конвертировать в '' Symbol' или Expr' в зависимости от содержимого строки) –

+0

спасибо. Это то, что мне нужно. Я снял документы (http://docs.julialang.org/en/release-0.5/manual/metaprogramming/) в середине для Expr, но пропустил, чтобы проверить, что '' 'parse''' находится прямо в верхней части страница. – Phuoc

ответ

3

Как сказал Колин, чтобы преобразовать в Expr (или Symbol) вы используете parse. И затем, чтобы оценить полученный Expr, вы используете eval. Оба вместе:

julia> eval(parse("a = 2")) 
2 
Смежные вопросы