Sobes.tech
Junior — Middle

Selgitage sulgemiste kontseptsiooni, mis programmeerimises ei välju vahemikust.

sobes.tech AI

Vastus AI-lt

Programmeerimises, sulg (closure) on funktsioon, mis haarab ja säilitab viiteid välise ulatuse muutujatele, isegi pärast selle ulatuse lõppemist. Kontseptsioon, et sulg ei välju ulatusest, tähendab, et sulg jätkab nende muutujate kasutamist, kuna need ei hävine, kuni sulg eksisteerib.

Näiteks Swiftis:

func makeIncrementer(amount: Int) -> () -> Int {
    var total = 0
    return {
        total += amount
        return total
    }
}

let incrementByFive = makeIncrementer(amount: 5)
print(incrementByFive()) // 5
print(incrementByFive()) // 10

Siin säilitab sulg muutuja total, mis tavaliselt peaks väljuma ulatusest pärast makeIncrementer täitmist. Kuid tänu sulgule jääb total alles ja muutub iga kord, kui seda kutsutakse.

Sellisel viisil võimaldavad sulgud säilitada olekut ja töötada välise ulatuse muutujatega, ilma neist väljuma.