Middle
Cos'è l'operatore defer nel linguaggio Go?
sobes.tech AI
Risposta dell'AI
L'operatore defer viene utilizzato per eseguire funzioni o metodi in modo differito. Le funzioni contrassegnate con defer vengono eseguite immediatamente prima di uscire dalla funzione che le contiene.
Principi di funzionamento di defer:
- Viene eseguito all'uscita dalla funzione corrente, sia per esecuzione normale che per panico.
- Più
defernella stessa funzione vengono eseguiti in ordine LIFO (Last-In, First-Out). - È utile per pulire risorse, come chiudere file o connessioni di rete.
Esempio di utilizzo:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Apertura del file.")
file, err := os.Open("example.txt")
if err != nil {
// Gestione dell'errore
return
}
// Chiusura differita del file
defer file.Close()
defer fmt.Println("Il file sarà chiuso.") // Questo defer verrà eseguito per primo (LIFO)
fmt.Println("Elaborazione del file...")
// Lavoro aggiuntivo con il file
}
Output del programma:
Apertura del file.
Elaborazione del file...
Il file sarà chiuso.