Sobes.tech
Junior — Middle

Wyjaśnij, co oznacza przechwytywanie zmiennych wewnątrz funkcji zamykającej.

sobes.tech AI

Odpowiedź od AI

Przechwytywanie zmiennych wewnątrz funkcji zamknięcia oznacza, że zamknięcie "zapamiętuje" i może używać zmiennych z otaczającego kontekstu, w którym zostało utworzone.

Na przykład, jeśli wewnątrz funkcji zadeklarowana jest zmienna, a następnie zwracana jest funkcja korzystająca z tej zmiennej, ta zmienna jest "przechwytywana" przez zamknięcie i zachowuje swoją wartość nawet po wyjściu z funkcji zewnętrznej.

Przykład w 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

Tutaj zamknięcie przechwytuje zmienne total i amount, zachowując ich stan między wywołaniami. Pozwala to na tworzenie funkcji z wewnętrznym stanem.