Middle
Was ist eine Closure in Go?
sobes.tech KI
Antwort von AI
Schließungen in Go sind Funktionen, die "sich erinnern" an Werte aus ihrem umgebenden Gültigkeitsbereich, auch nachdem die umgebende Funktion beendet wurde. Dies ermöglicht es, Variablen von außen zu erfassen und innerhalb der Funktion zu verwenden.
// Umgebende Funktion
func makeCounter() func() int {
count := 0 // Variable, die erfasst wird
// Innere Funktion (Schließung)
return func() int {
count++ // Erfasst und ändert count
return count
}
}
// Beispiel für die Verwendung
func main() {
counter1 := makeCounter() // Erstes Schließung erstellen
fmt.Println(counter1()) // Ausgabe: 1
fmt.Println(counter1()) // Ausgabe: 2
counter2 := makeCounter() // Zweites Schließung erstellen (mit eigenem count)
fmt.Println(counter2()) // Ausgabe: 1
}