Sobes.tech
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, запазвайки тяхното състояние между извикванията. Това позволява създаването на функции с вътрешно състояние.