Sobes.tech
Junior — Middle

Spiega il concetto di closure e come viene utilizzato nella programmazione

sobes.tech AI

Risposta dell'AI

La closure (chiusura) è una funzione che «ricorda» l'ambiente in cui è stata creata, incluso l'accesso alle variabili dell'ambito esterno, anche se questa area è già uscita dal contesto di esecuzione.

In programmazione, la closure viene utilizzata per:

  • Mantenere lo stato tra le chiamate di funzione senza usare variabili globali.
  • Incapsulare i dati e creare variabili private.
  • Creare funzioni con parametri predefiniti che conservano i valori.

Esempio in 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

Qui, incrementer è una closure che cattura e conserva la variabile total dalla funzione esterna, permettendo di mantenere lo stato tra le chiamate.