Sobes.tech
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.