Sobes.tech
Junior — Middle

Обяснете концепцията за closure и как се използва в програмирането

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 от външната функция, позволявайки запазване на състоянието между извикванията.