Sobes.tech
Назад к вопросам
Junior — Middle
89

Объясните концепцию замыкания в программировании и его применение

Компании, где спрашивали
Альфа-БанкАльфа-Банк
Uzum
KTS
ОдноклассникиОдноклассники

Ответ от нейросети

sobes.tech AI

Замыкание (closure) — это функция вместе с окружающим её лексическим контекстом, который сохраняет доступ к переменным из внешней области видимости даже после того, как эта внешняя функция завершила выполнение.

Применение замыканий:

  • Сохранение состояния между вызовами функции без использования глобальных переменных.
  • Инкапсуляция данных и создание приватных переменных.
  • Создание функций с параметрами по умолчанию или частичной фиксацией аргументов.

Пример на Swift (iOS):

func makeIncrementer(amount: Int) -> () -> Int {
    var total = 0
    let incrementer: () -> Int = {
        total += amount
        return total
    }
    return incrementer
}

let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20

Здесь incrementer — замыкание, которое сохраняет доступ к total и amount из внешней функции makeIncrementer.