Les jeunes connaissent les règles, mais les plus âgés connaissent les exceptions;)
Au plus tard C#
, si vous avez affaire à a null-able bool
, alors vous devez:
bool? x = null;
bool? y = true;
bool? z = false;
if (x == true || y == true || z == true) {
// That was the only way that is reasonably readable that I know of
// to accomplish this expression.
}
Si trois états n'est pas un problème, alors il ne devrait généralement pas y avoir de raison de comparer quelque chose à true
/ True
. Cependant, dans Python
plusieurs langues telles que celle que C/C++
vous utilisez, vous pouvez if
utiliser une expression non booléenne. Ces langues ont des règles uniques pour interpréter les entiers, les pointeurs, les listes, etc. comme étant vrais ou faux. Parfois, vous ne voulez pas cela. Par exemple, dans cet extrait de code Python:
x = True
y = 'abcdef'
z1 = x and y
z2 = (x == True) and (y == True)
Ici z
devrait être True
, mais z2
devrait être False
. Maintenant, un Clojure
langage aborde cela d’une autre manière encore - la and
fonction n’évalue pas nécessairement en un bool
, mais if
peut le gérer.
Indépendamment de la langue, chaque fois que vous comparez quelque chose à True
ou False
, il vaut probablement la peine de commenter.
if (some_flag == true)
mais les implicitesif (is_something)
ouif (has_something)
. Notez les noms de variables.