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