我有一个关于Julia中链式比较的问题。我阅读了手册中的这一部分,但仍不清楚。
在Julia,这样做:
if var1 && var2 != 1
意思是(在Python中):
if (var1 and var2) != 1:
谢谢!
您可以随时引用一个表达式来查看解析器如何解释它:
julia> :(var1 && var2 != 1)
:(var1 && (var2!=1))
在这种情况下,!=
比&&
结合得更紧密。这是具有这两个运算符的语言(如C和Java)的标准优先级。
根据我在该页面和链接页面上看到的内容(http://docs.julialang.org/en/latest/manual/control-flow/#man-短路评估),否。操作顺序不同。结果是这样的:
if (var1) && (var2 != 1)
首先,检查xscalar变量是否有满足if语句的值,就像执行一样
if var1
然后,如果并且只有在接受的情况下,才对下一部分进行评估:
if var2 != 1
换句话说,这两种说法大致相当:
if var1
if var2 != 1
and
if var1 && var2 != 1
(原谅julia语法知识的缺乏)
类似的python是:
if var1 and var2 != 1:
或者,用括号更清楚地显示
if (var1) and (var2 != 1) :