O închidere (closure) este o funcție care referențiază variabile din scopul înconjurător, "închizând peste" acestea — funcția reține accesul la acele variabile chiar și după ce funcția care le conține se întoarce. Funcțiile Go sunt valori de primă clasă, ceea ce face ca închiderile să fie un instrument comun și puternic.
O închidere de bază
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
