Sobes.tech
Middle

Was ist der Operator defer in der Programmiersprache Go?

sobes.tech KI

Antwort von AI

Der defer-Operator wird verwendet, um Funktionen oder Methoden verzögert auszuführen. Funktionen, die mit defer markiert sind, werden unmittelbar vor dem Verlassen der sie umgebenden Funktion ausgeführt.

Funktionsweise von defer:

  • Es wird beim Verlassen der aktuellen Funktion ausgeführt, egal ob normal oder durch einen Panic.
  • Mehrere defer in einer Funktion werden in LIFO-Reihenfolge (Last-In, First-Out) ausgeführt.
  • Nützlich zum Aufräumen von Ressourcen, wie z.B. zum Schließen von Dateien oder Netzwerkverbindungen.

Beispiel für die Verwendung:

package main

import (
	"fmt"
	"os"
)

func main() {
	fmt.Println("Datei wird geöffnet.")

	file, err := os.Open("example.txt")
	if err != nil {
		// Fehlerbehandlung
		return
	}

	// Verzögertes Schließen der Datei
	defer file.Close()
	defer fmt.Println("Datei wird geschlossen.") // Dieser defer wird zuerst ausgeführt (LIFO)

	fmt.Println("Verarbeite die Datei...")

	// Weitere Arbeit mit der Datei
}

Ausgabe des Programms:

Datei wird geöffnet.
Verarbeite die Datei...
Datei wird geschlossen.