Junior — Middle
Можете ли да говорите о важним особинама коришћења затварача у програмирању?
sobes.tech АИ
Одговор од АИ
Затвара (closures) су функции које "се сећају" контекста у којем су креиране, укључујући приступ променљивима из спољњег опсега чак и након што тај опсег више није активан.
Важне особине затварања:
- Омогућавају чување стања између позива функције.
- Користе се за креирање приватних променљивих и енкапсулацију.
- Често се примењују у асинхроном програмирању и обрађивачима догађаја.
Пример у 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 између позива, што омогућава сабирање вредности.