a |= b;
是相同的
a = (a | b);
它计算两个操作数的 按位或 , 并将 结果 分配 给左操作数。
要解释您的示例代码:
for (String search : textSearch.getValue()) matches |= field.contains(search);
我认为
matches是
boolean; 这意味着按位运算符的行为与逻辑运算符相同。
在循环的每次迭代中,它都是
OR的当前值和
matches从中返回的值
field.contains()。这有其设置为的效果
true,如果它已经真实的,
或者 如果
field.contains()返回true。
因此,它计算在整个循环中是否 有 对的调用
field.contains()返回了
true。



