Sobes.tech
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-ро аз функсияи беруна мегирад ва нигоҳ медорад, ки имкон медиҳад, ки ҳолат байни фароишҳо нигоҳ дошта шавад.