Sobes.tech
Junior — Middle

Можете ли да обясните какво се разбира под термина 'заснемане на променлива' в контекста на програмирането?

sobes.tech AI

Отговор от AI

В програмирането терминът «захващане на променлива» означава, че функция или затваряне запазват достъп до променливи от външната област на видимост, дори след като тази област вече е приключила изпълнението си.

Например, в Go можете да създадете функция, която връща друга функция, използваща променлива от външната функция:

func makeAdder(x int) func(int) int {
    return func(y int) int {
        return x + y // 'x' е захваната от затварянето
    }
}

func main() {
    addFive := makeAdder(5)
    fmt.Println(addFive(3)) // Ще изведе 8
}

Тук вътрешната функция «захваща» променливата x от външната функция makeAdder. Това позволява да се запази състоянието между извикванията и да се създадат по-гъвкави конструкции.