Sobes.tech
Назад к вопросам
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 сохраняется в замыкании между вызовами.