在查看一个或另一个 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;
吗?
我不排除速度不是主要论点的可能性,但这对我来说似乎最有意义。
是的,我知道这段代码可以转换为方法或流,但这只是代码的简化,它会更复杂等。我们可以假设在尖线之前(甚至之前if
),有大量做一些有意义的事情的代码。请不要建议“改用流”之类的建议,因为我已经知道如何进行 java 高级。我想了解这种使用按位包含 OR 的神秘解决方案的现象。