Junior — Middle
Vysvětlete koncept closure a jak se používá v programování
sobes.tech AI
Odpověď od AI
Uzávěr (closure) je funkce, která si „pamatuje“ prostředí, ve kterém byla vytvořena, včetně přístupu k proměnným z vnějšího rozsahu, i když tento rozsah již opustil kontext provádění.
V programování se uzávěr používá k:
- Uložení stavu mezi voláními funkce bez použití globálních proměnných.
- Zapouzdření dat a vytváření soukromých proměnných.
- Vytváření funkcí s výchozími parametry, které si uchovávají hodnoty.
Příklad v Swift (iOS):
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
Zde je incrementer uzávěr, který zachytává a uchovává proměnnou total z vnější funkce, což umožňuje uchovávat stav mezi voláními.