Junior — Middle
Vysvetlite koncept uzáverov, ktoré nevychádzajú z oblasti viditeľnosti v programovaní.
sobes.tech AI
Odpoveď od AI
V programovaní je uzávierka (closure) funkcia, ktorá zachytáva a uchováva odkazy na premenné z vonkajšieho rozsahu, aj po tom, čo tento rozsah ukončí svoju vykonávanie. Koncept uzávierok, ktoré nevychádzajú z rozsahu, znamená, že uzávierka má naďalej prístup k týmto premenným, pretože nie sú ničené, pokiaľ uzávierka existuje.
Napríklad v 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
Tu uzávierka uchováva premennú total, ktorá by normálne mala po vykonaní makeIncrementer opustiť rozsah. Ale vďaka uzávierke, total je zachované a mení sa pri každom volaní.
Týmto spôsobom uzávierky umožňujú zachovať stav a pracovať s premennými z vonkajších rozsahov, bez ich opustenia.