Junior — Middle
Vysvětlete koncept uzávěrek, které nevycházejí z oblasti v programování.
sobes.tech AI
Odpověď od AI
V programování je uzávěr (closure) funkce, která zachytává a uchovává odkazy na proměnné z vnějšího rozsahu, i po ukončení tohoto rozsahu. Koncept uzávěrů, které nevycházejí z rozsahu, znamená, že uzávěr má stále přístup k těmto proměnným, protože nejsou ničeny, dokud uzávěr existuje.
Například ve Swift:
func makeIncrementer(amount: Int) -> () -> Int {
var total = 0
return {
total += amount
return total
}
}
let incrementByFive = makeIncrementer(amount: 5)
print(incrementByFive()) // 5
print(incrementByFive()) // 10
Zde uzávěr uchovává proměnnou total, která by normálně měla po vykonání makeIncrementer opustit rozsah. Díky uzávěru je však total zachováno a mění se při každém volání.
Tímto způsobem uzávěry umožňují uchovávat stav a pracovat s proměnnými z vnějších rozsahů, aniž by z nich vystupovaly.