Sobes.tech
Junior — Middle

Proqramlaşdırmada bağlama və funksiya arasındakı fərqi izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

Fəaliyyət — müəyyən bir vəzifəni yerinə yetirən və parametrləri qəbul edə bilən və nəticə verə bilən kod blokudur.

Qapanış (closure) — xarici sahədən dəyişənləri ələ keçirən və saxlayan funksiyadır, hətta bu xarici funksiya tamamlandıqdan sonra belə.

Swift-də nümunə:

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

Burada, incrementer bir qapanışdır və total-ın vəziyyətini çağırışlar arasında saxlayır, hətta makeIncrementer artıq tamamlanıb. Adi funksiya belə davranışa malik deyil.