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.