Sobes.tech
Junior — Middle

Czy możesz wyjaśnić, co oznacza termin 'przechwytywanie zmiennej' w kontekście programowania?

sobes.tech AI

Odpowiedź od AI

W programowaniu termin «przechwytywanie zmiennej» oznacza, że funkcja lub zamknięcie zachowuje dostęp do zmiennych z zewnętrznego zakresu, nawet po zakończeniu tego zakresu.

Na przykład, w Go można utworzyć funkcję, która zwraca inną funkcję korzystającą ze zmiennej z zewnętrznej funkcji:

func makeAdder(x int) func(int) int {
    return func(y int) int {
        return x + y // 'x' przechwycone przez zamknięcie
    }
}

func main() {
    addFive := makeAdder(5)
    fmt.Println(addFive(3)) // Wypisze 8
}

Tutaj, wewnętrzna funkcja «przechwytuje» zmienną x z zewnętrznej funkcji makeAdder. To pozwala zachować stan między wywołaniami i tworzyć bardziej elastyczne konstrukcje.