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. Това позволява да се запази състоянието между извикванията и да се създадат по-гъвкави конструкции.