Middle
Dans quel ordre les fonctions différées (defer) sont-elles exécutées en Go?
sobes.tech IA
Réponse de l'IA
Les fonctions différées s'exécutent dans l'ordre inverse de leur définition, c'est-à-dire LIFO (Last-In, First-Out).
package main
import "fmt"
func main() {
defer fmt.Println("premier") // Défini en dernier
defer fmt.Println("deuxième") // Défini en penultième
defer fmt.Println("troisième") // Défini en premier
}
En conséquence, lors de l'exécution de ce code, il affichera :
troisième
deuxième
premier
Lorsqu'on sort du scope (fonction) où defer a été déclaré, les fonctions différées sont appelées dans l'ordre inverse. Cela est utile pour libérer des ressources, fermer des fichiers, débloquer des mutex et autres opérations de nettoyage.