Sobes.tech
Junior — Middle

გთხოვთ, ახსენით დახურვასა და ფუნქციის განსხვავება პროგრამირებაში.

sobes.tech AI

პასუხი AI-სგან

Функция — бу билгеле бер задачаны аткарган жана параметрлерди кабыл алып, натыйжа кайтарган код блогу.

Жабуу (closure) — бул сырттан келген өзгөрмөлөргө кирүүгө жана сактоого мүмкүндүк берген функция, even бул сырткы функция аяктагандан кийин да.

Swiftте мисал:

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 абалын чакыруулар аралыгында сактайт, even makeIncrementer аяктагандан кийин да. Адистик функция мындай жүрүм-турумга ээ эмес.