Les clauses de garde ou les conditions préalables (comme vous pouvez probablement le voir) vérifient si une certaine condition est remplie, puis interrompent le déroulement du programme. Ils sont parfaits pour les endroits où vous n'êtes vraiment intéressé que par un seul résultat d'une if
déclaration. Alors plutôt que de dire:
if (something) {
// a lot of indented code
}
Vous inversez la condition et rompez si cette condition inversée est remplie
if (!something) return false; // or another value to show your other code the function did not execute
// all the code from before, save a lot of tabs
return
est loin d'être aussi sale que goto
. Il vous permet de passer une valeur pour montrer au reste de votre code que la fonction n'a pas pu s'exécuter.
Vous verrez les meilleurs exemples où cela peut être appliqué dans des conditions imbriquées:
if (something) {
do-something();
if (something-else) {
do-another-thing();
} else {
do-something-else();
}
}
contre:
if (!something) return;
do-something();
if (!something-else) return do-something-else();
do-another-thing();
Vous trouverez peu de gens qui soutiennent que le premier est plus propre mais bien sûr, c'est complètement subjectif. Certains programmeurs aiment savoir dans quelles conditions quelque chose fonctionne par indentation, alors que je préfère de loin garder un flux de méthode linéaire.
Je ne dirai pas un seul instant que les précons changeront votre vie ou vous rendront fou, mais vous pourriez trouver votre code juste un peu plus facile à lire.