Sobes.tech
Middle

Qu'est-ce que defer en Go et à quel moment est-il appelé?

sobes.tech IA

Réponse de l'IA

En Go, le mot-clé defer est utilisé pour appeler une fonction de manière différée : elle sera exécutée après la fin de la fonction englobante, mais avant sa sortie.

Ceci est pratique pour libérer des ressources, fermer des fichiers, déverrouiller des mutex et effectuer d'autres opérations de nettoyage, en garantissant qu'elles se produisent même en cas d'erreurs ou de paniques.

Exemple :

func readFile() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close() // le fichier sera fermé à la fin de la fonction

    // travail avec le fichier
}

Ici, file.Close() sera appelé automatiquement à la sortie de readFile, peu importe comment la fonction se termine.