Esercitati per restituire un valore o una variabile equivalente?

4

Credo che sarebbe più facile spiegare quello che sto chiedendo con un esempio.

function getLastNode() {

    let current = this.head;

    if (current == null) {
        // Here, we could either return current, or return null
    }

    while (current.getNext() != null) {
        current = current.getNext();
    }

    return current;
}

All'inizio della funzione, nel l'istruzione if, abbiamo una scelta a uno scrivere la dichiarazione di ritorno come return current o return null . In situazioni come questa è possibile scegliere entrambe le opzioni poiché sono equivalenti.

Per evitare questa domanda di essere considerato primariamente opinione a base, voglio sapere se c'è qualche tipo di convenzione per questo. Esiste una guida standard, di convenzione o di stile che specifica una pratica standard?

Grazie!

    
posta Matthew Cliatt 12.10.2016 - 05:08
fonte

2 risposte

9

Due cose da considerare sempre:

  1. Considera quale lascia il codice più reattivo per cambiare

  2. Considera che è più facile da leggere

1 potrebbe argomentare per corrente se il valore del flag potrebbe mai essere qualcosa di diverso da null, non lo vedo accadere da solo.

2 sostiene null perché dice flat out: se sei qui, stai restituendo null. Anche semplificare la vita nel debugger.

A conti fatti, prenderò return null qui.

Le viste qui presentate non devono in alcun modo essere interpretate come approvazione di Null

    
risposta data 12.10.2016 - 05:21
fonte
3

Invece di avere un return separato per la lista vuota, metterei il ciclo while in un blocco if(current != null) { e poi restituire current incondizionatamente.

Non è sempre necessario evitare più return s in un metodo, ma se è possibile e persino rende il codice più succinto, dovresti farlo.

    
risposta data 12.10.2016 - 09:02
fonte