- Shai-la a écrit:
- AGS reconnaît le code comme "== true". Ca va plus vite mais perso je ne l'utilise pas, par souci de clarté.
Alors, je pinaille, mais non, non, et non, je ne suis pas d'accord. C'est l’inverse.
"if(x)" va exécuter un code si et seulement si x est (littéralement)
true, pas si il est "== true".
Ce que fait l'opérateur "==", c'est tester si la valeur de la variable à gauche est identique à la valeur de la variable à droite, et retourner "true" si c'est le cas, ou "false" si ce n'est pas le cas. Ainsi :
- Code:
-
if(monBool == true) {...}
est interprété comme ceci par l'ordinateur:
- Code:
-
temporary_bool = monBool == true;
if(temporary_bool) {...}
Ce qui est plus long à exécuter que le simple:
- Code:
-
if(monBool){...}
La solution "
if(monBool == true)" est peut-être plus simple à lire pour les non programmeur, mais une fois qu'on à l'habitude, on sait que "
if(monBool)" implique que mon bool est un booléen, et donc le code apparait assez clair.
De même, et pour la même raison, pour vérifier qu'un booléen est faut, on préfèrera "!" à "== false" :
- Code:
-
if(!monBool) {...}
// et pas
if(monBool == false) {...}
Mais bien sur, toute ces opérations auront le même résultat, et la différence de temps de calcul et d'usage de la mémoire est insignifiantes, et tout ceci n'est bien que pinaillages et conventions.