表达式简介

表达式是 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 中元编程的关键组成部分。