Junior — Middle
Magyarázza el, mit jelent a változók elfogása egy zárófüggvényen belül
sobes.tech MI
Válasz az MI-től
A változók elfogása a zárófüggvényen belül azt jelenti, hogy a zárófüggvény "emlékszik" és használhatja a környező kontextusból származó változókat, ahol létrehozták.
Például, ha egy függvényen belül változót deklarálunk, majd egy olyan függvényt adunk vissza, amely ezt a változót használja, akkor ez a változó "elfogásra" kerül a zárófüggvény által, és megőrzi értékét még akkor is, ha kilépünk a külső függvényből.
Swift példával:
func makeIncrementer(amount: Int) -> () -> Int {
var total = 0
return {
total += amount
return total
}
}
let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20
Ebben az esetben a zárófüggvény elfogja a total és amount változókat, és megőrzi azok állapotát a hívások között. Ez lehetővé teszi belső állapotú függvények létrehozását.