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 өзгөрмөлөрүн кармайт жана алардын абалын чакыруулар ортосунда сактайт. Бул ички абалы бар функцияларды түзүүгө мүмкүндүк берет.