En closure er en funksjon som refererer til variabler fra sitt omsluttende omfang, "lukker over" dem — funksjonen beholder tilgang til disse variablene selv etter at den omsluttende funksjonen returnerer. Go-funksjoner er førsteklasses verdier, noe som gjør closures til et vanlig og kraftig verktøy.
En grunnleggende closure
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
