Sau*_*tro 5 chained comparison-operators julia
我对朱莉娅的链式比较有疑问.我在手册中阅读了这一部分,但目前还不清楚.
在朱莉娅,这是:
if var1 && var2 != 1
Run Code Online (Sandbox Code Playgroud)
意思是这(在Python中):
if (var1 and var2) != 1:
Run Code Online (Sandbox Code Playgroud)
谢谢!
Ste*_*ski 13
您始终可以引用表达式以查看解析器如何解释它:
julia> :(var1 && var2 != 1)
:(var1 && (var2!=1))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,!=绑定比更紧密&&.这是具有这两个运算符的语言的标准优先级,例如C和Java.
从我在该页面和链接页面(http://docs.julialang.org/en/latest/manual/control-flow/#man-short-circ-evaluation)上读到的内容来看,没有。操作顺序不同。最终结果是这样的:
if (var1) && (var2 != 1)
Run Code Online (Sandbox Code Playgroud)
首先,检查 xscalar 变量是否有满足 if 语句的值,就像您所做的那样
if var1
Run Code Online (Sandbox Code Playgroud)
然后,当且仅当被接受时,才会评估下一部分:
if var2 != 1
Run Code Online (Sandbox Code Playgroud)
换句话说,这两种说法大致是等价的:
if var1
if var2 != 1
and
if var1 && var2 != 1
Run Code Online (Sandbox Code Playgroud)
(原谅缺乏julia语法知识)
与此等效的 python 是:
if var1 and var2 != 1:
Run Code Online (Sandbox Code Playgroud)
或者,用括号更清楚地显示,
if (var1) and (var2 != 1) :
Run Code Online (Sandbox Code Playgroud)