if ... else 表达式

朱莉娅最常见的条件是 ifelse 表达式。例如,下面我们实现欧几里德算法来计算最大公约数 ,使用条件来处理基本情况:

mygcd(a, b) = if a == 0
    abs(b)
else
    mygcd(b % a, a)
end

朱莉娅中的 ifelse 形式实际上是一个表达式,并且具有一个值; 该值是所采用分支上的尾部位置(即最后一个表达式)中的表达式。请考虑以下示例输入:

julia> mygcd(0, -10)
10

在这里,a0b-10。条件 a == 0true,所以第一个分支被采用。返回的值是 abs(b),即 10

julia> mygcd(2, 3)
1

在这里,a2b3。条件 a == 0 是假的,所以第二个分支被采用,我们计算 mygcd(b % a, a),即 mygcd(3 % 2, 2)。当 3 除以 2 时,%运算符返回余数,在这种情况下 1。因此我们计算 mygcd(1, 2),这次 a1b2。再次,a == 0 是假的,所以第二个分支被采用,我们计算 mygcd(b % a, a),这是 mygcd(0, 1)。这次,a == 0 终于返回了 abs(b),结果是 1