Një mbyllje është një funksion që referon variabla nga shkrimi i tij përreth, "duke u mbyllur mbi" ato — funksioni ruan qasjen në ato variabla edhe pasi funksioni përrethues kthehet. Funksionet Go janë vlera të rendit të parë, duke e bërë mbylljen një mjet të zakonshëm dhe të fuqishëm.
Një mbyllje themelore
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
