Sobes.tech
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ù defer nella 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.