Junior — Middle
Můžete vysvětlit, co se rozumí pod pojmem 'zachycení proměnné' v kontextu programování?
sobes.tech AI
Odpověď od AI
V programování znamená pojem „zachycení proměnné”, že funkce nebo uzávěr si zachovává přístup k proměnným z vnějšího rozsahu, i po ukončení tohoto rozsahu.
Například v jazyce Go lze vytvořit funkci, která vrací jinou funkci využívající proměnnou z vnější funkce:
func makeAdder(x int) func(int) int {
return func(y int) int {
return x + y // 'x' zachyceno uzávěrem
}
}
func main() {
addFive := makeAdder(5)
fmt.Println(addFive(3)) // Vytiskne 8
}
Zde vnitřní funkce „zachytí“ proměnnou x z vnější funkce makeAdder. To umožňuje uchovávat stav mezi voláními a vytvářet flexibilnější konstrukce.