Middle
O que é defer e para que é usado? Em que ordem as chamadas defer são executadas se houver várias na mesma função?
sobes.tech IA
Resposta da IA
Em Go, a palavra-chave defer é usada para chamar uma função de forma diferida: ela será executada após a conclusão da função envolvente, mas antes do seu retorno. Isto é útil para liberar recursos, fechar ficheiros, desbloquear mutexes e outras operações de limpeza.
Se houver várias chamadas defer numa função, elas são executadas na ordem inversa à sua declaração (ordem de pilha). Ou seja, o último defer declarado será executado primeiro.
Exemplo:
func exemplo() {
defer fmt.Println("Primeiro defer")
defer fmt.Println("Segundo defer")
fmt.Println("No corpo da função")
}
// A saída será:
// No corpo da função
// Segundo defer
// Primeiro defer