Sobes.tech
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 defer dans 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é.