Zamknięcie (closure) to funkcja, która odwołuje się do zmiennych z otaczającego zakresu, "zamykając się" nad nimi — funkcja zachowuje dostęp do tych zmiennych nawet po zakończeniu funkcji otaczającej. Funkcje w Go są wartościami pierwszej klasy, co czyni zamknięcia powszechnym i potężnym narzędziem.
Podstawowe zamknięcie
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
