Sobes.tech
Junior — Middle

Paaiškinkite, ką reiškia kintamųjų gaudymas uždarymo funkcijoje.

sobes.tech AI

Atsakymas iš AI

Kintamųjų įsitraukimas uždarymo funkcijoje reiškia, kad uždarymas "atsimena" ir gali naudoti aplinkos kontekste, kuriame jis buvo sukurtas, kintamuosius.

Pavyzdžiui, jei funkcijos viduje yra deklaruojamas kintamasis, o vėliau grąžinama funkcija, kuri naudoja šį kintamąjį, šis kintamasis "įtraukiamas" į uždarymą ir išlaiko savo reikšmę net ir išeinant iš išorinės funkcijos.

Pavyzdys Swift kalba:

func makeIncrementer(amount: Int) -> () -> Int {
    var total = 0
    return {
        total += amount
        return total
    }
}

let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20

Čia uždarymas įsitraukia į total ir amount kintamuosius, išlaiko jų būseną tarp iškvietimų. Tai leidžia kurti funkcijas su vidiniu būsenos valdymu.