Was ist der Pipe-Gleich-Operator (=)?
Entwickler, die in Open Source auf den Pipe-Gleich-Operator (|=) gestoßen sind Der Bibliothekscode fragt sich möglicherweise nach seiner Bedeutung. Dieser Operator, der oft mit einer logischen Zuweisung verwechselt wird, enthält eine signifikante bitweise ODER-Operation.
Bitweises ODER verstehen
Der Pipe-Gleichheitsoperator |= funktioniert genauso wie =. Im folgenden Code kombiniert der Operator |= den Originalwert von defaults mit der Konstante DEFAULT_SOUND:
notification.defaults |= Notification.DEFAULT_SOUND;
Dieser Vorgang entspricht:
notification.defaults = notification.defaults | Notification.DEFAULT_SOUND;
wo | bezeichnet den bitweisen ODER-Operator.
Bitweises ODER in Konstantenmasken
Im bereitgestellten Beispiel sind die Konstanten DEFAULT_SOUND, DEFAULT_VIBRATE und DEFAULT_LIGHTS Zweierpotenzen:
DEFAULT_SOUND = 1 DEFAULT_VIBRATE = 2 (1Dies ermöglicht die Verwendung von bitweisem ODER zum Hinzufügen oder Entfernen von Flags. Zum Beispiel:
int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // 001 | 010 = 011Ein weiteres Flag hinzufügen:
myFlags |= DEFAULT_LIGHTS;hängt einfach ein neues Flag an.
Flag-Präsenz testen
Der bitweise UND-Operator (&) testet das Vorhandensein eines Flags:
boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;Wenn das Ergebnis ist ungleich Null, das Flag ist gesetzt.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3