Назад к вопросам
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, сохраняя их состояние между вызовами. Это позволяет создавать функции с внутренним состоянием.