Sobes.tech
Back to questions
Junior — Middle
72

Объясните отличие между замыканием и функцией в программировании.

Companies where asked
KTS

Answer from AI

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 уже завершила работу. Обычная функция такого поведения не имеет.