Sobes.tech
Senior

Was ist defer in Go? Was gibt der Code mit zwei defer aus?

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, aber vor deren Rückgabe ausgeführt.

Wenn in einer Funktion mehrere defer-Anweisungen vorhanden sind, werden diese in umgekehrter Reihenfolge ihrer Deklaration ausgeführt (Call-Stack).

Beispiel:

package main

import "fmt"

func main() {
    defer fmt.Println("Erster defer")
    defer fmt.Println("Zweiter defer")
    fmt.Println("Hauptcode")
}

Die Ausgabe wird sein:

Hauptcode
Zweiter defer
Erster defer

Das bedeutet, dass zuerst der Hauptcode ausgeführt wird, dann die verzögerten Aufrufe in umgekehrter Reihenfolge.