我最近发现,爪哇(和Scala)包括非短路逻辑运算符&
,|
和^
。我以前认为这些只能用作按位运算符。虽然可能有一个论点^
,但我想不出使用非短路逻辑运算符的很好理由-
尽管可以肯定,但我可以做一个例子。
这些运算符有用吗?它们似乎更可能导致难以捕获的错误。
scala> def foo = {
| println("foo")
| true
| }
foo: Boolean
scala> def bar = {
| println("bar")
| true
| }
bar: Boolean
scala> foo || bar
foo
res5: Boolean = true
scala> foo | bar
foo
bar
res6: Boolean = true
如果右侧是您要执行的副作用(例如记录),则它们很有用。但是,我建议这有点代码味道,对下一个家伙肯定是不直观的。
问题内容: 哪一组短路,这到底意味着复杂的条件表达式短路了? 问题答案: 在与运营商“短路”,这意味着如果没有必要,他们不评价的右手边。 在与运营商,如逻辑运算符时,始终评估两侧。 每个操作员只有一种短路情况,它们是: -不必知道右侧是什么,结果必须是 -不必知道右侧是什么,结果必须是 让我们在一个简单的示例中比较行为: 第二个版本使用非短路运算符,并将抛出,但第一个版本将无例外地返回;
给出静态编程语言中的编译错误(意外标记(使用';'分隔同一行上的表达式))
我正在使用熊猫中的布尔索引。 问题是为什么声明: 很好,但是 错误退出? 例子:
哪个集合是短路的,复杂条件表达式是短路的确切含义是什么?
问题内容: 我正在Pandas中使用布尔值索引。问题是为什么要声明: 工作正常而 错误退出? 例: 问题答案: 当你说 你暗中要求Python进行转换并转换为布尔值。 NumPy数组(长度大于1)和对象(例如)没有布尔值-换句话说,它们引发 当用作布尔值时。那是因为不清楚何时应该为True或False。如果某些用户的长度非零,则可能会认为它们为True,例如Python列表。其他人可能只希望其所有
本文向大家介绍JavaScript 逻辑非运算符(!),包括了JavaScript 逻辑非运算符(!)的使用技巧和注意事项,需要的朋友参考一下 示例 逻辑NOT(!)运算符对表达式执行逻辑取反。 语法: 返回值: 一个Boolean。 描述 逻辑NOT(!)运算符对表达式执行逻辑取反。 布尔值只需取反即可:!true === false和!false === true。 非布尔值首先转换为布尔值,