Sobes.tech
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.