Le clausole di protezione o le pre-condizioni (come probabilmente vedrai) controllano se una determinata condizione è soddisfatta e quindi interrompono il flusso del programma. Sono perfetti per i luoghi in cui sei davvero interessato solo a un risultato di una if
dichiarazione. Quindi, piuttosto che dire:
if (something) {
// a lot of indented code
}
Si inverte la condizione e si rompe se tale condizione invertita è soddisfatta
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
non è affatto sporco come goto
. Ti consente di passare un valore per mostrare al resto del codice che la funzione non può essere eseguita.
Vedrai i migliori esempi di dove questo può essere applicato in condizioni nidificate:
if (something) {
do-something();
if (something-else) {
do-another-thing();
} else {
do-something-else();
}
}
vs:
if (!something) return;
do-something();
if (!something-else) return do-something-else();
do-another-thing();
Troverai poche persone che sostengono che il primo è più pulito, ma ovviamente è completamente soggettivo. Ad alcuni programmatori piace sapere in quali condizioni sta operando qualcosa per rientro, mentre preferirei mantenere il flusso del metodo lineare.
Non suggerirò per un momento che i precon ti cambieranno la vita o ti faranno scopare, ma potresti trovare il tuo codice un po 'più facile da leggere.