我对朱莉娅的链式比较有疑问。我读过this section in the manual,但目前还不清楚。
在朱莉娅,这是:
if var1 && var2 != 1
意思是这(在Python中):
if (var1 and var2) != 1:
谢谢!
答案 0 :(得分:13)
您总是可以引用一个表达式来查看解析器如何解释它:
julia> :(var1 && var2 != 1)
:(var1 && (var2!=1))
在这种情况下,!=
比&&
绑定得更紧密。这是具有这两个运算符的语言的标准优先级,例如C和Java。
答案 1 :(得分:3)
从我在该页面上看到的内容和链接页面(http://docs.julialang.org/en/latest/manual/control-flow/#man-short-circuit-evaluation),没有。操作顺序不同。它最终是这样的:
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) :