Qu'est-ce que l'opérateur Pipe Equal (=) ?
Développeurs qui ont rencontré l'opérateur pipe Equal (|=) en open source le code de la bibliothèque peut s'interroger sur sa signification. Cet opérateur, souvent confondu avec une affectation logique, contient une opération OU au niveau du bit significative.
Comprendre le OU au niveau du bit
L'opérateur pipe égal |= fonctionne de la même manière que =. Dans le code ci-dessous, l'opérateur |= combine la valeur originale des valeurs par défaut avec la constante DEFAULT_SOUND :
notification.defaults |= Notification.DEFAULT_SOUND;
Cette opération est équivalente à :
notification.defaults = notification.defaults | Notification.DEFAULT_SOUND;
où | désigne l'opérateur OU au niveau du bit.
OU au niveau du bit dans les masques constants
Dans l'exemple fourni, les constantes DEFAULT_SOUND, DEFAULT_VIBRATE et DEFAULT_LIGHTS sont des puissances de deux :
DEFAULT_SOUND = 1 DEFAULT_VIBRATE = 2 (1 << 1) DEFAULT_LIGHTS = 4 (1 << 2)
Cela permet d'utiliser le OU au niveau du bit pour ajouter ou supprimer des indicateurs. Par exemple :
int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // 001 | 010 = 011
Ajouter un autre drapeau :
myFlags |= DEFAULT_LIGHTS;
ajoute simplement un nouveau drapeau.
Test de la présence du drapeau
L'opérateur ET au niveau du bit (&) teste la présence d'un drapeau :
boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;
Si le résultat est différent de zéro, le drapeau est défini.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!