Julia的文档表明,写出if语句的有效捷径就是语法
<cond> && <statement>
Run Code Online (Sandbox Code Playgroud)
我已经将这些用于错误消息,例如length(x) < N && error("x is too short"),它按预期工作.但是,以下不起作用:
x = 3
x < 4 && x = 5
Run Code Online (Sandbox Code Playgroud)
我收到表单的错误syntax: invalid assignment location.这里发生了什么?
我要做的是检查是否x小于4,如果是,则设置x为5.我应该做以下事情吗?
if x < 4
x = 5
end
Run Code Online (Sandbox Code Playgroud)
这种情况是否有有效的短路方法?
导致错误的原因是&&运算符的优先级高于赋值运算符,=因此执行代码行就像编写代码一样(x < 4 && x) = 5.
对于解决方案,您必须添加parantheses.
x < 4 && (x = 5)
Run Code Online (Sandbox Code Playgroud)