Junior — Middle
Magyarázza el a különbséget a zárvány és a függvény között a programozásban.
sobes.tech MI
Válasz az MI-től
A függvény egy kódrészlet, amely egy adott feladatot hajt végre, és paramétereket fogadhat, valamint eredményt adhat vissza.
A zár (closure) olyan függvény, amely elfogja és megőrzi a külső hatókör változóinak hozzáférését, még akkor is, ha ez a külső függvény befejezte a futását.
Példa Swift-ben:
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
Itt az incrementer egy zár, amely megőrzi a total állapotát a hívások között, még akkor is, ha a makeIncrementer már befejeződött. Egy normál függvény nem rendelkezik ezzel a viselkedéssel.