2010-08-06 7 views
3

Notez ma question n'est pas sur != mais |=Que signifie "| =" en Java?

Un exemple d'utilisation est here

Je suppose que x |= y est le même que x = x | y mais je ne pouvais pas trouver confirmation de la documentation et je voulais être sûr

Merci

Répondre

7

Il s'agit d'une affectation «ou» plus, si bien que vous avez raison.

+0

C'est exact +1 –

3

Plus correctement, x | = y est en fait calculé comme x = x | (y).

Voici un exemple intéressant de la raison pour laquelle ceci est important.

int c = 2; 
c %= c++ * ++c; 

La conséquence intéressante est ici qu'il serait écrit

c = c % (c++ * ++c); 

spécifications Java nous disent que la machine virtuelle Java verra le c initial d'abord et le stocker, quoi que ce soit qui le précède n'a aucun effet sur Ainsi, C++ & ++ c n'affectera pas réellement le résultat du calcul. Ce sera toujours c = 2% ce qui équivaut à 2 :)

+0

+1 joli cas d'angle! – fortran