Sobes.tech
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 функциясеннән килә.