Middle
Qu'est-ce que l'opérateur defer dans le langage Go?
sobes.tech IA
Réponse de l'IA
L'opérateur defer est utilisé pour exécuter une fonction ou une méthode de manière différée. Les fonctions marquées avec defer s'exécutent juste avant la sortie de la fonction qui les contient.
Principes de fonctionnement de defer :
- S'exécute lors de la sortie de la fonction en cours, que ce soit par exécution normale ou par panic.
- Plusieurs
deferdans une même fonction s'exécutent dans l'ordre LIFO (Last-In, First-Out). - Utile pour nettoyer des ressources, comme fermer des fichiers ou des connexions réseau.
Exemple d'utilisation :
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Ouverture du fichier.")
file, err := os.Open("example.txt")
if err != nil {
// Gestion de l'erreur
return
}
// Fermeture différée du fichier
defer file.Close()
defer fmt.Println("Le fichier sera fermé.") // Ce defer s'exécutera en premier (LIFO)
fmt.Println("Traitement du fichier...")
// Travail supplémentaire avec le fichier
}
Sortie du programme :
Ouverture du fichier.
Traitement du fichier...
Le fichier sera fermé.