Замыкание — это функция, которая ссылается на переменные из своего окружающего контекста, "закрывая" над ними — функция сохраняет доступ к этим переменным даже после того, как обрамляющая функция возвращает управление. Функции в Go являются значениями первого класса, что делает замыкания распространённым и мощным инструментом.
Базовое замыкание
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
