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

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

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

sobes.tech AI

Closure (замыкание) — это функция, которая «запоминает» окружение, в котором была создана, включая доступ к переменным из внешней области видимости, даже если эта область уже вышла из контекста выполнения.

В программировании 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 — это closure, которое захватывает и сохраняет переменную total из внешней функции, позволяя сохранять состояние между вызовами.