Doublons possibles:
Why doesn't Java have compound assignment versions of the conditional-and and conditional-or operators? (&&=, ||=)
Why does a “&&=” Operator not exist?&& = et || = opérateurs
Aujourd'hui, au travail, j'ai écrit la lettre de crédit suivante (les identités réelles de b et b1 sont confidentielles:
b &&= b1; // meaning b = b && b1;
Je l'ai regardé pour un couple de secondes et s'est rendu compte qu'il n'existe pas un tel opérateur. Juste pour être sûr, j'ai cliqué sur compiler et il a échoué. Pour être sûr que j'ai consulté la norme.
Y a-t-il des raisons spécifiques à l'absence de tels opérateurs? Je pense à certains:
b &&= b1
etb = b && b1
peuvent ne pas être équivalent à cause de l'évaluation de court-circuit de & &.- & & = est laid
- & & = est rarement nécessaire
Je ne prétends pas que ce serait très utile d'avoir ces opérateurs, non. Je ne prétends pas non plus que l'une quelconque ou la totalité des trois raisons ci-dessus ne suffisent pas à ne pas créer cet opérateur. Ma question est la suivante: y a-t-il une raison beaucoup plus sérieuse que je supervise?
Oui, vous pouvez avoir deux valeurs "vraies" booléennes (toutes deux supérieures à un), où leur bitwise et leur valeur sont "faux" ... Essayez bitwise et 2 et 1 et vous obtenez 0 (faux), où un logique et produirait vrai – LorenVS
'b & = isSomethingWithSideEffects();' exécuterait la fonction indépendamment. mais s'il était changé en '&& =', il ne le serait probablement pas dans le cas où b était faux, non? – Dusty
Désolé, je ne comprends pas pourquoi le commentaire de Dingo a été upvoted. Quelqu'un pourrait-il expliquer s'il vous plaît? – John