Sobes.tech
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.