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