Sobes.tech
Junior — Middle

Magyarázza el a closure fogalmát és hogyan használják a programozásban

sobes.tech MI

Válasz az MI-től

A lezárás (closure) olyan függvény, amely „emlékszik” arra a környezetre, amelyben létrejött, beleértve a külső hatókör változóihoz való hozzáférést, még akkor is, ha ez a terület már kilépett a végrehajtási kontextusból.

A programozásban a lezárásokat a következőkre használják:

  • Az állapot megőrzése a függvényhívások között anélkül, hogy globális változókat használnánk.
  • Adatok kapszulázása és privát változók létrehozása.
  • Alapértelmezett paraméterekkel rendelkező függvények létrehozása, amelyek megőrzik értékeiket.

Swift (iOS) példa:

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 lezárás, amely elfogja és megőrzi a külső függvényből származó total változót, lehetővé téve az állapot megőrzését a hívások között.