Restituzione di una variabile o di un codice di ritorno da una funzione

-3

Supponiamo di avere una funzione main() in cui chiamiamo una funzione createDirectory() .
Ad esempio, in Python il codice sarebbe:

def main():
    # Do some stuff
    createDirectory(myPath)
    # Do some more stuff

Per riutilizzare la nostra directory creata, posso vedere almeno due modi:

  • la funzione createDirectory() restituisce 0 in caso di successo, 1 se non riesce a creare la directory.
    Se l'operazione ha esito positivo, sappiamo che possiamo utilizzare myPath direttamente in seguito.
  • o restituisce il percorso alla directory in caso di successo e None se fallisce.

Le mie domande sono:

  1. ci sono dei nomi specifici per questi due stili: restituire un codice di ritorno (fail, successo, ecc.) o restituire un valore utile effettivo (il percorso della nostra directory creata nel mio esempio)?
  2. Ci sono dei chiari vantaggi nel scegliere l'uno o l'altro stile?
    Di solito restituisco valori significativi e utili piuttosto che codici di ritorno, ma sarei interessato a sapere perché le persone usano l'altro stile.
posta filaton 19.04.2016 - 14:21
fonte

1 risposta

1

I codici di errore sono fondamentalmente quelli che usi quando non hai altra scelta. Come quando si utilizza un linguaggio di livello molto basso in cui la creazione di nuove strutture dati o il lancio di eccezioni è un problema o un limite alle risorse.

Anche lo stesso vecchio, lo stesso vecchio per quanto riguarda "il programma per le persone, non i computer". Sii il più utile possibile allo sviluppatore che sta per ottenere i tuoi errori e ha bisogno di eseguire il debug del codice che li ha causati. I codici di errore sono oscuri e magici e devono essere consultati in documenti / memorizzati. Le strutture dati che rappresentano risultati ed eccezioni con buoni tipi / messaggi sono auto-documentanti.

La risposta è davvero irrisolvibile nel caso generale però, come è stato affermato nei commenti. Come sempre, fai ciò che è idiomatico nella lingua e nella squadra in cui lavori attualmente.

    
risposta data 19.04.2016 - 16:06
fonte

Leggi altre domande sui tag