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