Junior — Middle
Leg uit wat het verschil is tussen een closure en een functie in programmeren.
sobes.tech AI
Antwoord van AI
Een functie is een blok code dat een specifieke taak uitvoert en parameters kan accepteren en een resultaat kan teruggeven.
Een closure is een functie die toegang tot en het vastleggen van variabelen uit de externe scope mogelijk maakt, zelfs nadat die externe functie is voltooid.
Voorbeeld in Swift:
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
Hier is incrementer een closure die de staat van total tussen de aanroepen behoudt, zelfs nadat makeIncrementer is voltooid. Een normale functie heeft dit gedrag niet.