En closure er en funktion, der refererer til variabler fra sit omgivende område og "lukker omkring dem" — funktionen bevarer adgang til disse variabler selv efter, at den omgivende funktion returnerer. Go-funktioner er førsteklasses værdier, hvilket gør closures til et almindeligt og kraftfuldt værktøj.
En grundlæggende closure
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
