背景:在看开源项目源码的时候,看见如下操作,|=,第一眼看到 | 很懵逼,还有这种操作!!!
private boolean restrictSystemProps
......
restrictSystemProps |= resource.isParserRestricted();
public boolean isParserRestricted() {
return restrictParser;
}
赶紧goolge了下,惭愧惭愧,换种方式就不认识了,学的太死板了呀…
原来是 x = x | y 的缩写,类似于 x = a + y
相应的还有
// & (或)
flag = true;
flag &= false;
// 等价于
flag = flag & false;
// | (或)
boolean flag = true;
flag |= false;
// 等价于
flag = flag | false;
// ^ (异或)
int a = 5;
a ^= 5;
// 等价于
a = a ^ 5;// 0
// +
int res = 10;
res = res + 10;
res += 10;
// -
res = 10;
res = res - 10;
res -= 10;