¿Qué es el operador de tubería igual (=)?
Desarrolladores que han encontrado el operador de tubería igual (|=) en código abierto El código de la biblioteca puede preguntarse sobre su significado. Este operador, que a menudo se confunde con una asignación lógica, tiene una importante operación OR bit a bit. En el código siguiente, el operador |= combina el valor original de defaults con la constante DEFAULT_SOUND:
notification.defaults |= Notification.DEFAULT_SOUND;Esta operación es equivalente a:
notificación.defaults = notificación.defaults | Notificación.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_SOUND;OR bit a bit en máscaras constantes
notification.defaults = notification.defaults | Notification.DEFAULT_SOUND;
En el ejemplo proporcionado, las constantes DEFAULT_SOUND, DEFAULT_VIBRATE y DEFAULT_LIGHTS son potencias de dos:
SONIDO_DEFAULT = 1 DEFAULT_VIBRATE = 2 (1 Esto permite el uso de OR bit a bit para agregar o eliminar indicadores. Por ejemplo:
int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // 001 | 010 = 011
DEFAULT_SOUND = 1 DEFAULT_VIBRATE = 2 (1myFlags |= DEFAULT_LIGHTS;
int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // 001 | 010 = 011Probando la presencia de banderanotification.defaults = notification.defaults | Notification.DEFAULT_SOUND;El operador AND bit a bit (&) prueba la presencia de una bandera:
boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;Si el resultado es distinto de cero, la bandera está establecida.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3