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.