En closure är en funktion som refererar till variabler från sitt omgivande scope, "closing over" dem — funktionen behåller åtkomst till dessa variabler även efter att den omslutande funktionen returnerar. Go-funktioner är first-class values, vilket gör closures till ett vanligt och kraftfullt verktyg.
En grundläggande closure
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
