在阅读通知的Android指南时,我偶然发现了这个:
增加振动
您可以使用默认振动模式或应用程序定义的振动模式提醒用户.
要使用默认模式,请将"DEFAULT_VIBRATE"添加到默认字段:
Run Code Online (Sandbox Code Playgroud)notification.defaults |= Notification.DEFAULT_VIBRATE;
这样做很清楚:它将DEFAULT_VIBRATE标志添加到通知对象的默认标志.但是|=运营商在Java中做了什么?它看起来像一个"OR",但它是如何工作的?
你能提供一个使用数字的例子吗?
谢谢
Cho*_*ett 28
|=是一个按位OR赋值运算符.它采用LHS的当前值,按位RHS,并将值分配回LHS(以+=与添加相似的方式).
例如:
foo = 32; // 32 = 0b00100000
bar = 9; // 9 = 0b00001001
baz = 10; // 10 = 0b00001010
foo |= bar; // 32 | 9 = 0b00101001 = 41
// now foo = 41
foo |= baz; // 41 | 10 = 0b00101011 = 43
// now foo = 43
Run Code Online (Sandbox Code Playgroud)
Boz*_*zho 17
a |= x是a = a | x,并且|是"按位包含OR"
每当出现这样的问题时,请查看运营商的官方教程.
每个运营商都有一个分配表:
+= -= *= /= %= &= ^= |= <<= >>= >>>=
哪里a OP= x翻译成a = a OP x
关于按位操作:
0101 (decimal 5)
OR 0011 (decimal 3)
= 0111 (decimal 7)
Run Code Online (Sandbox Code Playgroud)
在一组位用作标志的情况下,可以使用按位OR; 单个二进制数字中的位可以各自表示不同的布尔变量.对数字应用按位OR运算以及在某些位置包含1的位模式将导致设置了这些位的新数字.例如: