A closure ist eine Funktion, die Variablen aus ihrem umgebenden Gültigkeitsbereich referenziert – die Funktion behält Zugriff auf diese Variablen, auch nachdem die umschließende Funktion zurückgekehrt ist. Go-Funktionen sind First-Class-Werte, was Closures zu einem häufigen und mächtigen Werkzeug macht.
Eine einfache Closure
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
