我定义了两个非空向量:
tmp = [1, 2, 3]
tmp2 = [1, 2]
当我打字
size(tmp, 1) > 0
输出为true
。但是当我写
size(tmp, 1) > 0 & size(tmp2, 1) > 0
它返回false。当我将每个术语放在括号中时,如
(size(tmp, 1) > 0) & (size(tmp2, 1) > 0 )
它按预期返回true。但是我不明白为什么size(tmp, 1) > 0 & size(tmp2, 1) > 0
返回false?
这是两件事的结果。首先是运算符优先级。您编写的代码被解析为size(tmp, 1) > (0 & size(tmp2, 1)) > 0
(即作为链式比较)。
但是,更大的问题是您可能想使用&&
而不是&
。&
是按位的,而&&
逻辑是。因此,&&
这里具有您期望的优先级。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句