相关疑难解决方法(0)

|之间有什么区别?和|| 还是运营商?

我一直||在OR表达式中使用(两个管道),包括C#和PHP.偶尔我会看到一个使用的管道:|.这两种用法有什么区别?当使用一个在另一个之上时是否有任何警告或者它们是否可以互换?

php c# operators

288
推荐指数
6
解决办法
12万
查看次数

Java/Scala中的非短路逻辑(布尔)运算符有很好的用途吗?

我最近发现,爪哇(和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
Run Code Online (Sandbox Code Playgroud)

java scala

12
推荐指数
2
解决办法
1247
查看次数

为什么按位和运算符没有短路?

我们都知道&&如果左操作数是逻辑运算符短路false,因为我们知道如果一个操作数是false,那么结果也是false.

为什么按位运算&符也不会短路?如果左操作数是0,那么我们知道结果也是0.我在(C,Javascript,C#)中测试过的每种语言都会评估两个操作数而不是在第一个之后停止.

是否有任何理由让&操作员短路是个坏主意?如果没有,为什么大多数语言都没有让它成为短暂的?这似乎是一个明显的优化.

language-agnostic bit-manipulation

6
推荐指数
2
解决办法
1780
查看次数

标签 统计

bit-manipulation ×1

c# ×1

java ×1

language-agnostic ×1

operators ×1

php ×1

scala ×1