当前位置: 首页 > 面试题库 >

'AND'vs'&&'作为运算符

贺卜霸
2023-03-14
问题内容

我有一个代码库,开发人员决定使用ANDOR而不是&&||

我知道运算符的优先级(&&之前and)有所不同,但是使用给定的框架(准确地说是PrestaShop),这显然不是原因。

您正在使用哪个版本?是and不是更具有可读性&&?还是没有区别?


问题答案:

如果使用ANDOR,最终将被如下所示绊倒:

$this_one = true;
$that = false;

$truthiness = $this_one and $that;

想猜得出什么$truthiness相等吗?

如果您说false… bzzzt,对不起,错!

$truthiness以上具有价值true。为什么?
=具有比更高的优先级and。添加括号以显示隐式顺序可以使这一点更加清楚:

($truthiness = $this_one) and $that

如果您使用&&而不是and第一个代码示例中的示例,它将可以按预期方式运行,并且为false

如以下注释中所述,这也可以获取正确的值,因为括号的优先级高于=

$truthiness = ($this_one and $that)


 类似资料:
  • 问题内容: 我正在通过Daniel liang在第9章“字符串”中的“ Java编程第9版简介”来学习Java,我遇到了这段代码: 好吧,有人可以解释一下这里发生了什么吗?如何从整数中添加子字符,其背后的含义是什么,谢谢。 问题答案: 来自文档 char数据类型是单个16位Unicode字符。 A 由其代码点值表示: 分钟(或0) 最多:(或65,535) 您可以在ASCII表上看到所有英文字母代

  • targetPixValList是一个包含Double对象的列表,它也包含列表中连续位置的相似值,当我尝试使用Code_1比较两个Double值时,cnt返回零。当我使用code_2时,cnt返回值。 列表的类型是 为什么“==”运算符不能与Double一起使用? 代码_1: Code_2:

  • 使用stream API很容易将具有的对象列表转换为以该为键的列表: 有没有办法用运算符替换lambda表达式:?类似的内容

  • 转换操作 结构操作 关联操作 聚合操作 缓存操作

  • 问题内容: Netbeans说我的三元运算符不是语句。怎么会? 我尝试过if / then / else对应项,并且工作正常: 问题答案: 三元运算符中的语句必须是非空的。他们需要退货。

  • 问题内容: 我最近遇到了以下代码: 这是什么,某种反向双λ? 问题答案: 没有操作员。第一个只是Java 8中引入的lambda语法,第二个是误导性的“小于” 和“一元减”的串联。 您可以将其读取为,即它会测试是否小于,所有(很好,大多数)负数就是这种情况,因此命名为。 仅出于完整性考虑:此测试不仅(有意地?)难以理解,而且-如评论中所指出- 也因(而)失败。相反,您可能应该只使用简单得多的。