154 votes

Est-ce une bonne pratique d'utiliser l'opérateur xor pour les contrôles booléens ?

J'aime personnellement le exclusif ou , ^ Il s'agit d'un opérateur qui a du sens dans le contexte des contrôles booléens en raison de sa concision. Je préfère de loin écrire

if (boolean1 ^ boolean2)
{
  //do it
}

que

if((boolean1 && !boolean2) || (boolean2 && !boolean1))
{
  //do it
}

mais je reçois souvent des regards confus de la part d'autres développeurs Java expérimentés (pas seulement des débutants), et parfois des commentaires sur le fait qu'il ne devrait être utilisé que pour les opérations de type bit à bit.

Je suis curieux de savoir quelles sont les meilleures pratiques en matière d'utilisation de l'outil d'évaluation de la qualité de l'eau. ^ opérateur.

-3voto

!= est correct pour comparer deux variables. Il ne fonctionne pas, cependant, avec les comparaisons multiples.

-3voto

Nick Points 37

En tant qu'opérateur bit à bit, xor est beaucoup plus rapide que tout autre moyen de le remplacer. Ainsi, pour les calculs critiques en termes de performances et évolutifs, xor est impératif.

Mon opinion personnelle subjective : Il est absolument interdit, à quelque fin que ce soit, d'utiliser l'égalité (== ou !=) pour les booléens. L'utiliser montre un manque d'éthique et de principes fondamentaux de la programmation. Toute personne qui vous lance des regards confus sur ^ devrait être renvoyée aux bases de l'algèbre booléenne (j'ai été tenté d'écrire "aux rivières de la croyance" ici :) ).

-4voto

Chris Rea Points 57
str.contains("!=") ^ str.startsWith("not(")

me semble meilleur que

str.contains("!=") != str.startsWith("not(")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X