Junior — Middle
Objasnite šta znači hvatanje promenljivih unutar funkcije zatvarača.
sobes.tech АИ
Одговор од АИ
Захвата променљивих унутар функције затварача значи да затварач "сећа" и може користити променљиве из окружењa у којем је створен.
На пример, ако унутар функције буде проглашена променљива, а затим се врати функција која користи ту променљиву, та променљива се "заснива" затварачем и задржава своју вредност чак и након изласка из спољне функције.
Пример у Swift:
func makeIncrementer(amount: Int) -> () -> Int {
var total = 0
return {
total += amount
return total
}
}
let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20
Овде, затварач заснива променљиве total и amount, одржавајући њихово стање између позива. Ово омогућава стварање функција са унутрашњим стањем.