Назад к вопросам
Junior — Middle
73
Объясните отличие между замыканием и функцией в программировании.
Компании, где спрашивали
KTS
Ответ от нейросети
sobes.tech AI
Функция — это блок кода, который выполняет определённую задачу и может принимать параметры и возвращать результат.
Замыкание (closure) — это функция, которая захватывает и сохраняет доступ к переменным из внешней области видимости, даже после того, как эта внешняя функция завершила выполнение.
Пример на Swift:
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 между вызовами, хотя makeIncrementer уже завершила работу. Обычная функция такого поведения не имеет.