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.