Junior — Middle
Обяснете какво означава улавянето на променливи вътре във функция-заключване
sobes.tech AI
Отговор от 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, запазвайки тяхното състояние между извикванията. Това позволява създаването на функции с вътрешно състояние.