Sobes.tech
Junior — Middle

Vysvetlite, čo znamená zachytávanie premenných vo vnútri funkcie-uzáveru

sobes.tech AI

Odpoveď od AI

Zachytávanie premenných vnútri uzáveru znamená, že uzáver "pamätá" a môže používať premenné z okolia, v ktorom bol vytvorený.

Napríklad, ak je vo vnútri funkcie deklarovaná premenná a následne je vrátená funkcia, ktorá túto premennú používa, táto premenná je "zachytená" uzáverom a zachováva svoju hodnotu aj po opustení vonkajšej funkcie.

Príklad v Swift:

func makeIncrementer(amount: Int) -> () -> Int {
    var total = 0
    return {
        total += amount
        return total
    }
}

let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20

Tu uzáver zachytáva premenné total a amount, udržiava ich stav medzi volaniami. To umožňuje vytvárať funkcie s vnútorným stavom.