Junior — Middle
გთხოვთ, ახსნათ დახურვის კონცეფცია პროგრამირებაში და მისი გამოყენება
sobes.tech AI
პასუხი AI-სგან
Закрытие (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 һәм amountка керү мөмкинлеген саклый, ул тышкы makeIncrementer функциясеннән килә.