Sobes.tech
Junior — Middle

Кадом навъи маълумотро дар бар мегирад пӯшида дар барномасозӣ?

sobes.tech AI

Ҷавоб аз AI

Дармон (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 як дармон аст, ки тағйирёбандаи total-ро нигоҳ медорад ва ҳар дафъа, ки онро даъват мекунанд, меафзояд, ҳатто агар функсияи makeIncrementer аллакай анҷом ёфта бошад.

Дармонҳо барои эҷоди функсияҳои бо ҳолат, идоракунии рӯйдодҳо, амалиётҳои асинхронӣ ва ғайра васеъ истифода мешаванд.