我对 Julia 中的链式比较有疑问。我在手册中阅读了这一部分,但仍不清楚。
在 Julia 中,这样做:
if var1 && var2 != 1
意思是这个(在 Python 中):
if (var1 and var2) != 1:
谢谢!
我对 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-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) :