Julia的文档指出,写出if
语句的有效捷径是语法
<cond> && <statement>
我已经在错误消息中使用了很多,例如length(x) < N && error("x is too short")
,并且它像预期的那样工作。但是,下面的命令不起作用:
x = 3
x < 4 && x = 5
我得到一个错误的形式syntax: invalid assignment location
。这是怎么回事?
我要做的是检查x
是否小于4
,如果是,则将x
设置为5
。我应该这样做吗?
if x < 4
x = 5
end
对于这种情况是否有有效的短路方法? 您的错误是由于&&
操作符比赋值操作符=
具有更高的优先级,因此您的代码行被执行,就像您编写(x < 4 && x) = 5
一样。
对于一个解决方案,你必须添加括号。
x < 4 && (x = 5)
查看我的代码在浏览器中运行