Sobes.tech
Junior — Middle

Можете ли објаснити шта подразумева термин 'захват променљиве' у контексту програмирања?

sobes.tech АИ

Одговор од АИ

У програмирању, термин «ухватање променљиве» значи да функција или затварање задржава приступ променљивама из спољашњег опсега, чак и након што је та област већ завршила своје извршавање.

На пример, у 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. Ово омогућава да се одржи стање између позива и да се креирају флексибилније конструкције.