有没有一种方法可以根据一个值检查多个布尔条件(以实现与下面相同的效果),而无需计算sum两次或将结果保存到变量中?
if sum(x) == 1 || sum(x) > 3
# Do Something
end
Run Code Online (Sandbox Code Playgroud)
您可以使用以下几个选项之一:
匿名函数:
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)