Назад к вопросам
Junior — Middle
80
Объясните механизм функционирования замыкания в программировании.
Ответ от нейросети
sobes.tech AI
В программировании замыкание — это функция, которая «запоминает» и может использовать переменные из своей внешней области видимости, даже если эта внешняя функция уже завершила выполнение.
В Go замыкания часто создаются с помощью анонимных функций, которые обращаются к переменным из окружающего контекста. Это позволяет сохранять состояние между вызовами функции.
Пример:
package main
import "fmt"
func counter() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := counter()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
Здесь функция counter возвращает замыкание, которое увеличивает и возвращает значение count. Переменная count сохраняется в замыкании между вызовами.