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