Sobes.tech
Junior — Middle

Vysvetlite rozdiel medzi uzáverom a funkciou v programovaní.

sobes.tech AI

Odpoveď od AI

Funkcia je blok kódu, ktorý vykonáva určitú úlohu a môže prijímať parametre a vracať výsledok.

Zatváranie (closure) je funkcia, ktorá zachytáva a uchováva prístup k premenným z vonkajšieho rozsahu, aj po tom, čo táto vonkajšia funkcia ukončila svoju činnosť.

Príklad v 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

Tu je incrementer uzávier, ktorý zachováva stav total medzi volaniami, aj keď makeIncrementer už skončila. Bežná funkcia takéto správanie nemá.