Sobes.tech
Middle

In welcher Reihenfolge werden die deferred Funktionen in Go ausgeführt?

sobes.tech KI

Antwort von AI

Verzögerte Funktionen werden in umgekehrter Reihenfolge ausgeführt, also LIFO (Last-In, First-Out).

package main

import "fmt"

func main() {
	defer fmt.Println("erst") // Zuletzt definiert
	defer fmt.Println("zweiter") // Vorletzter definiert
	defer fmt.Println("dritter") // Erstellt
}

Beim Verlassen des Geltungsbereichs (Funktion), in dem defer deklariert wurde, werden die verzögerten Funktionen in umgekehrter Reihenfolge aufgerufen. Dies ist nützlich, um Ressourcen freizugeben, Dateien zu schließen, Mutexes zu entsperren und andere Aufräumarbeiten durchzuführen.