Middle
O que é defer em Go e em que momento ele é chamado?
sobes.tech IA
Resposta da IA
No 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 de sua saída.
Isso é útil para liberar recursos, fechar arquivos, desbloquear mutexes e outras operações de limpeza, garantindo que ocorram mesmo em caso de erros ou pânicos.
Exemplo:
func readFile() {
file, err := os.Open("file.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close() // o arquivo será fechado no final da função
// trabalho com o arquivo
}
Aqui, file.Close() será chamado automaticamente ao sair de readFile, independentemente de como a função termina.