Sobes.tech
Junior — Middle

Leg uit wat het concept van closures buiten scope is in programmeren.

sobes.tech AI

Antwoord van AI

In programmeren is een closure een functie die referenties naar variabelen uit de externe scope vastlegt en bewaart, zelfs nadat die scope zijn uitvoering heeft voltooid. Het concept van niet-uitgaande closures betekent dat de closure nog steeds toegang heeft tot die variabelen, omdat ze niet worden vernietigd zolang de closure bestaat.

Bijvoorbeeld in 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

Hier bewaart de closure de variabele total, die normaal gesproken uit de scope zou verdwijnen na het uitvoeren van makeIncrementer. Maar dankzij de closure blijft total behouden en wordt het bij elke aanroep aangepast.

Op deze manier maken closures het mogelijk om de staat te behouden en met variabelen uit externe scopes te werken, zonder ze te verlaten.