Sobes.tech
Middle

Was ist defer in Go und wann wird es aufgerufen?

sobes.tech KI

Antwort von AI

In Go wird das Schlüsselwort defer verwendet, um eine Funktion verzögert aufzurufen: Sie wird nach Abschluss der umgebenden Funktion ausgeführt, aber vor ihrem Austritt.

Dies ist praktisch, um Ressourcen freizugeben, Dateien zu schließen, Mutexes freizugeben und andere Aufräumarbeiten durchzuführen, wobei garantiert wird, dass sie auch bei Fehlern oder Panik auftreten.

Beispiel:

func readFile() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close() // Die Datei wird am Ende der Funktion geschlossen

    // Arbeit mit der Datei
}

Hier wird file.Close() automatisch beim Verlassen von readFile aufgerufen, unabhängig davon, wie die Funktion beendet wird.