Sobes.tech
Junior — Middle

Explica diferența dintre o închidere și o funcție în programare.

sobes.tech AI

Răspuns de la AI

O funcție este un bloc de cod care execută o sarcină specifică și poate accepta parametri și returna un rezultat.

O închidere (closure) este o funcție care capturează și păstrează accesul la variabilele din domeniul extern, chiar și după ce această funcție externă și-a încheiat execuția.

Exemplu în 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

Aici, incrementer este o închidere care păstrează starea lui total între apeluri, chiar dacă makeIncrementer a terminat deja. O funcție obișnuită nu are acest comportament.