Um closure é uma função que referencia variáveis do seu escopo envolvente, "fechando sobre" elas — a função mantém acesso àquelas variáveis mesmo após a função envolvente retornar. Funções em Go são valores de primeira classe, tornando closures uma ferramenta comum e poderosa.
Um closure básico
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
