Junior — Middle
Expliquez le concept de fermetures qui ne sortent pas de la portée en programmation.
sobes.tech IA
Réponse de l'IA
En programmation, une fermeture est une fonction qui capture et conserve des références aux variables de la portée externe, même après que cette portée a terminé son exécution. La notion de fermetures qui ne sortent pas de la portée signifie que la fermeture continue d’avoir accès à ces variables, car elles ne sont pas détruites tant que la fermeture existe.
Par exemple, en Swift :
func makeIncrementer(amount: Int) -> () -> Int {
var total = 0
return {
total += amount
return total
}
}
let incrementByFive = makeIncrementer(amount: 5)
print(incrementByFive()) // 5
print(incrementByFive()) // 10
Ici, la fermeture conserve la variable total, qui devrait normalement sortir de la portée après l’exécution de makeIncrementer. Mais grâce à la fermeture, total est conservé et modifié à chaque appel.
Ainsi, les fermetures permettent de conserver l’état et de travailler avec des variables de la portée externe sans en sortir.