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.