Junior — Middle
Magyarázza el a záródás fogalmát a programozásban és alkalmazását
sobes.tech MI
Válasz az MI-től
A lezárás (closure) egy függvény a körülötte lévő lexikális kontextussal együtt, amely megőrzi a hozzáférést a külső hatókör változóihoz még akkor is, amikor ez a külső függvény befejezte a végrehajtását.
A lezárások alkalmazásai:
- 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.
- Függvények létrehozása alapértelmezett paraméterekkel vagy részben rögzített argumentumokkal.
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 megőrzi a hozzáférést a total és amount változókhoz a külső makeIncrementer függvényből.