检查 Julia 中同一函数输出的多个条件

Nat*_*yer 2 julia

有没有一种方法可以根据一个值检查多个布尔条件(以实现与下面相同的效果),而无需计算sum两次或将结果保存到变量中?

if sum(x) == 1 || sum(x) > 3
    # Do Something
end
Run Code Online (Sandbox Code Playgroud)

Abo*_*mar 6

您可以使用以下几个选项之一:

匿名函数:

if (i->i>3||i==1)(sum(x))
    # Do Something
end
Run Code Online (Sandbox Code Playgroud)

或者,

if sum(x) |> i->i>3||i==1
    # Do Something
end
Run Code Online (Sandbox Code Playgroud)

德摩根定理:

if !(3 >= sum(x) != 1)
    # Do Something
end
Run Code Online (Sandbox Code Playgroud)

如果在循环内使用:

3 >= sum(x) != 1 && break
# Do Something
Run Code Online (Sandbox Code Playgroud)

或作为函数返回:

3 >= sum(x) != 1 && return false
Run Code Online (Sandbox Code Playgroud)

但使用临时变量将是最易读的:

s = sum(x)
if s > 3 || s == 1
    # Do Something 
end
Run Code Online (Sandbox Code Playgroud)