Come utilizzare la parola chiave Defer in Golang

Come utilizzare la parola chiave Defer in Golang
Durante la programmazione in Go, potresti imbatterti nel differire parola chiave. Questa parola chiave può rendere il codice più leggibile e gestibile. Questo articolo copre in dettaglio la parola chiave Defer e come si può usarla per migliorare i programmi Golang.

Sommario

  • Qual è la parola chiave Defer in Golang?
  • Sintassi di parola chiave Defer
  • Come utilizzare la parola chiave Defer in Golang?
  • Come utilizzare più parole chiave Defer in Golang?
  • Conclusione

Qual è la parola chiave Defer in Golang?

La parola chiave Defer nella programmazione Golang può programmare una chiamata di funzione che verrà eseguita, attende che un'altra funzione possa eseguire prima. In altre parole, possiamo ritardare l'esecuzione di determinate dichiarazioni o chiamate di funzione fino a quando la funzione non completa.

Ciò può essere utile quando è necessario eseguire operazioni di pulizia o quando si desidera assicurarsi che determinate funzioni vengano eseguite anche se si verifica un errore.

L'esecuzione di dichiarazioni Defer è invertita dall'ordine in cui sono stati dichiarati. Di conseguenza, l'ultima dichiarazione di Defer verrà eseguita per primo e dopo, la seconda a Defer Dichiarazione e così via.

Sintassi della parola chiave Defer

La sintassi per l'utilizzo del differire La parola chiave in Golang è molto semplice. Per differire una chiamata di funzione, usa semplicemente la parola chiave differire Seguita dalla funzione della funzione che desideri differire.

Per esempio:

func main ()
Defer fmt.Println ("mondo!")
fmt.Println ("ciao")

Nell'esempio sopra, il fmt.Println ("mondo!") La chiamata di funzione viene differita fino a dopo il fmt.Println ("ciao") La chiamata di funzione è stata completata.

Come utilizzare la parola chiave Defer in Golang?

In Golang, la parola chiave Defer viene utilizzata per aggiungere una chiamata di funzione a uno stack, che viene eseguita in ordine inverso quando la funzione circostante si completa. Ciò significa che la chiamata di funzione differita più recentemente viene eseguita per prima, seguita dalla prossima chiamata di funzione differita più recentemente, e così via fino a quando tutte le chiamate di funzione differite non sono state eseguite.

Ecco un codice di esempio che dimostra come utilizzare la parola chiave Defer in Golang:

Pacchetto principale
Importa "FMT"
func myfunction ()
Defer fmt.Println ("mondo")
fmt.Println ("ciao")

func main ()
myFunction ()

Questo codice definisce una funzione myFunction () che stampe Ciao alla console, quindi difende la stampa Mondo fino a dopo il myFunction () La funzione ha completato l'esecuzione. Alla fine, la funzione principale () chiama myFunction () Per eseguire la funzione.

L'output di questo codice sarà:

Il motivo di questo ordine di output è che il differire L'istruzione provoca l'esecuzione del codice che lo segue dopo che la funzione ha completato l'esecuzione. Quindi, in questo caso, il Mondo la stringa viene stampata sulla console dopo il Ciao corda.

Come utilizzare più parole chiave Defer in Golang?

Golang consente l'uso di più istruzioni di differimento in una funzione. Quando vengono utilizzate più istruzioni di defer.

Codice

Ecco un codice di esempio che dimostra come utilizzare più dichiarazioni di Defer in Golang:

Pacchetto principale
Importa "FMT"
func main ()
Defer fmt.Println ("Hello 2")
Defer fmt.Println ("World 1")
fmt.Println ("Ciao, mondo!")

Produzione

Quando viene eseguito il codice sopra, verrà prodotto il seguente output:

Come puoi vedere, le due dichiarazioni Defer vengono eseguite in ordine inverso, con l'ultima istruzione Defer eseguita prima.

Conclusione

Usando la parola chiave Defer in Golang, possiamo ritardare l'esecuzione di una funzione fino a quando tutte le altre funzioni non sono state eseguite. Questo può rendere il nostro codice più mantenebile, soprattutto se utilizzato in combinazione con più istruzioni di differimento. Se utilizzati più volte, le istruzioni Defer vengono eseguite in ordine inverso, con l'ultima istruzione Defer eseguita prima.