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

Объясните, что означает захват переменных внутри функции-замыкания

Компании, где спрашивали
Uzum
KTS

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

sobes.tech AI

Захват переменных внутри функции-замыкания означает, что замыкание «запоминает» и может использовать переменные из окружающего контекста, в котором оно было создано.

Например, если внутри функции объявлена переменная, а затем возвращается функция, которая использует эту переменную, то эта переменная «захватывается» замыканием и сохраняет своё значение даже после выхода из внешней функции.

Пример на Swift:

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

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

Здесь замыкание захватывает переменные total и amount, сохраняя их состояние между вызовами. Это позволяет создавать функции с внутренним состоянием.