Sobes.tech
Junior — Middle

Објасните концепт closure и како се користи у програмирању

sobes.tech АИ

Одговор од АИ

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

У програмирању, затварање се користи за:

  • Чување стања између позива функције без коришћења глобалних променљивих.
  • Инкапсулацију података и креирање приватних променљивих.
  • Креирање функција са подразумеваним параметрима који чувају вредности.

Пример у Swift (iOS):

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

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

Овде, incrementer је затварање које ухвата и чува променљиву total из спољашње функције, омогућавајући чување стања између позива.