Verwendung von defer in Go
Mit dem Schlüsselwort defer in Go können Sie eine Funktion ausführen, kurz bevor die umgebende Funktion zurückkehrt, um sicherzustellen, dass Aktionen ausgeführt werden auch im Falle einer Panik übernommen.
Vorteile von Defer Over Code Placed at Function Ende
Beispiele:
Try-finally Resource Aufräumen:
func main() { f, err := os.Create("file") if err != nil { panic("cannot create file") } defer f.Close() fmt.Fprintf(f, "hello") }
Try-catch-endlich mit Panic Handling:
func main() { defer func() { msg := recover() fmt.Println(msg) }() f, err := os.Create(".") // . is the current directory if err != nil { panic("cannot create file") } defer f.Close() fmt.Fprintf(f, "hello") }
Geänderte Rückgabe Werte:
func yes() (text string) { defer func() { text = "no" }() return "yes" } func main() { fmt.Println(yes()) // Prints "no" }
Zusammenfassend bietet die Verzögerung in Go eine flexible Möglichkeit, die Ressourcenbereinigung sicherzustellen, Paniken zu bewältigen und die Ausführungsreihenfolge zu steuern, ohne dass verschachtelte Blockstrukturen erforderlich sind.
Das obige ist der detaillierte Inhalt vonWie vereinfacht das Schlüsselwort „defer' von Go die Ressourcenverwaltung und den Umgang mit Panikattacken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!