Junior — Middle
Программалоодо чектен чыкпаган жабдуулар концепциясын түшүндүрүңүз.
sobes.tech AI
AIден жооп
Программалооодо, жабдуулук (closure) — бул функция, ал сырткы чөйрөдөн өзгөрмөлөргө шилтемелерди кармап жана сактайт, анткени ал чөйрө аяктагандан кийин да. Чөйрөдөн чыгбаган жабдуулук түшүнүгү — бул жабдуулук ошол өзгөрмөлөргө дагы деле кире алат дегенди билдирет, анткени алар жабдуулук бар болгон убакытка чейин жок кылынбайт.
Мисалы, Swiftте:
func makeIncrementer(amount: Int) -> () -> Int {
var total = 0
return {
total += amount
return total
}
}
let incrementByFive = makeIncrementer(amount: 5)
print(incrementByFive()) // 5
print(incrementByFive()) // 10
Бул жерде жабдуулук total өзгөрмөсүн сактайт, ал нормалдуу түрдө makeIncrementer аткарылгандан кийин чөйрөдөн чыгышы керек эле. Бирок жабдуулук аркылуу, total сакталат жана ар бир чакырууда өзгөртүлөт.
Ошентип, жабдуулук абалды сактоого жана сырткы чөйрөдөн келген өзгөрмөлөр менен иштөөгө мүмкүндүк берет, алардын ичинен чыгбай туруп.