问题描述
当查看一个或另一个 git 上的一些代码时,有时我会看到开发人员使用按位包含 OR 复合赋值运算符 (|=
),其中简单的赋值就足够了。不幸的是,我手头没有这个解决方案的任何代码,所以我会尽量描述它。
假设我们在java中有以下代码:
boolean found = false;
for (String s : stringSet) {
if (s == null || s.equals("")) {
found |= true; // <== this line
}
}
if (!found) {
System.out.println("No interesting string found");
}
我只询问尖线。为什么人们这样做?我知道我们可以有大量的数据,数十亿或数万亿的数据可以迭代。但是,尖线是否会如此显着地改变效率?如果我将其更改为简单赋值:found = true;
,对于大量数据是否会明显变慢?
我不排除速度不是主要论点的可能性,但它对我来说似乎最有意义。
是的,我知道这段代码可以转换为方法或流,但这只是代码的简化,它会更复杂等等。我们可以假设在尖线之前(甚至在 {{1 }}),有大量代码可以做一些有意义的事情。请不要建议“改用流”之类的东西,因为我已经知道如何使用 Java 高级了。我想使用按位包含 OR 来理解这种莫名其妙的解决方案的现象。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)