Junior — Middle
консепти closure-ро шарҳ диҳед ва чӣ гуна дар барномасозӣ истифода мешавад
sobes.tech AI
Ҷавоб аз AI
Баста (closure) — функсия, ки «ҳаромон» муҳити, ки дар он сохта шудааст, ёд дорад, дар баробари дастрасӣ ба тағйирёбандаҳои аз доираи беруна, ҳатто агар он минтақа аллакай аз контексти иҷро баромада бошад.
Дар барномасозӣ, closure барои:
- нигоҳ доштани ҳолат байни фароидани функсия бидуни истифодаи тағйирёбандаҳои глобалӣ.
- инкапсулятсияи додаҳо ва эҷоди тағйирёбандаҳои хусусӣ.
- эҷоди функсияҳо бо параметрҳои пешфарз, ки арзишҳоро нигоҳ медоранд.
Масал дар Swift (iOS):
func makeIncrementer(amount: Int) -> () -> Int {
var total = 0
let incrementer: () -> Int = {
total += amount
return total
}
return incrementer
}
let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20
Ин ҷо, incrementer як closure аст, ки тағйирёбандаи total-ро аз функсияи беруна мегирад ва нигоҳ медорад, ки имкон медиҳад, ки ҳолат байни фароишҳо нигоҳ дошта шавад.