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