什么是管道等于运算符(=)?
在开源中遇到过管道等于运算符(|=)的开发者库代码可能想知道它的含义。该运算符经常被误认为是逻辑赋值,它包含重要的按位 OR 运算。
理解按位 OR
管道等于运算符 |= 与 = 的工作方式相同。在下面的代码中, |= 运算符将 defaults 的原始值与常量 DEFAULT_SOUND 组合起来:
notification.defaults |= Notification.DEFAULT_SOUND;
此操作等效于:
notification.defaults = notification.defaults | Notification.DEFAULT_SOUND;
其中 |表示按位或运算符。
常量掩码中的按位或
在提供的示例中,常量 DEFAULT_SOUND、DEFAULT_VIBRATE 和 DEFAULT_LIGHTS 是 2 的幂:
DEFAULT_SOUND = 1 DEFAULT_VIBRATE = 2 (1 << 1) DEFAULT_LIGHTS = 4 (1 << 2)
这允许使用按位或来添加或删除标志。例如:
int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // 001 | 010 = 011
添加另一个标志:
myFlags |= DEFAULT_LIGHTS;
简单地附加一个新标志。
测试标志存在
按位与运算符 (&) 测试是否存在标志:
boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;
如果结果非零,则设置标志。
以上是管道等于 (=) 运算符在编程中的用途是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!