Una closure è una funzione che referenzia variabili dal suo scope circostante, "chiudendosi intorno ad esse" — la funzione mantiene l'accesso a quelle variabili anche dopo che la funzione esterna ritorna. Le funzioni Go sono first-class values, rendendo le closure uno strumento comune e potente.
Una closure di base
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
