表达式简介
表达式是 Julia 中特定类型的对象。你可以将表达式视为表示尚未评估(即执行)的 Julia 代码。然后有特定的功能和操作,如 eval()
,它将评估表达式。
例如,我们可以编写一个脚本或输入解释器:julia> 1 + 1 2
创建表达式的一种方法是使用:()
语法。例如:
julia> MyExpression = :(1+1)
:(1 + 1)
julia> typeof(MyExpression)
Expr
我们现在有一个 Expr
类型的对象。刚刚形成,它什么都不做 - 它只是像任何其他物体一样坐着,直到它被采取行动。在这种情况下,我们可以使用 eval()
函数来评估该表达式:
julia> eval(MyExpression)
2
因此,我们看到以下两个是等价的:
1+1
eval(:(1+1))
如果我们只想找到 1 + 1 等于的东西,为什么我们想要通过 eval(:(1+1))
中更复杂的语法?基本原因是我们可以在代码中的某一点定义表达式,稍后可能会对其进行修改,然后在稍后的时间点对其进行评估。这可能会为 Julia 程序员打开强大的新功能。表达式是 Julia 中元编程的关键组成部分。