A volte mi imbatto in codice simile al seguente esempio (ciò che questa funzione fa esattamente fuori dallo scopo di questa domanda):
function doSomething(value) {
if (check1(value)) {
return -1;
}
else if (check2(value)) {
return value;
}
else {
return false;
}
}
Come puoi vedere, le istruzioni if
, else if
e else
vengono utilizzate insieme all'istruzione return
. Questo sembra abbastanza intuitivo per un osservatore casuale, ma penso che sarebbe più elegante (dal punto di vista di uno sviluppatore di software) eliminare il else
-s e semplificare il codice in questo modo:
function doSomething(value) {
if (check1(value)) {
return -1;
}
if (check2(value)) {
return value;
}
return false;
}
Questo ha senso, poiché tutto ciò che segue un'istruzione return
(nello stesso ambito) non verrà mai eseguito, rendendo il codice sopra semanticamente uguale al primo esempio.
Quale dei precedenti si adatta meglio alle buone pratiche di codifica? Ci sono degli svantaggi per entrambi i metodi per quanto riguarda la leggibilità del codice?
Modifica: è stato fatto un suggerimento doppio con questo domanda fornita come riferimento. Credo che la mia domanda tocchi un argomento diverso, poiché non sto chiedendo di evitare dichiarazioni duplicate come presentate nell'altra domanda. Entrambe le domande cercano di ridurre le ripetizioni, anche se in modi leggermente diversi.