Junior — Middle
É possível ter vários operadores defer dentro de uma única função?
sobes.tech IA
Resposta da IA
Sim, no Go é possível usar vários operadores defer dentro de uma mesma função. Todas as chamadas diferidas serão executadas na ordem inversa (LIFO) após a função terminar. Isto é útil para libertar recursos, fechar ficheiros, desbloquear mutexes, etc.
Exemplo:
func exemplo() {
defer fmt.Println("Primeiro defer")
defer fmt.Println("Segundo defer")
fmt.Println("Dentro da função")
}
// A saída será:
// Dentro da função
// Segundo defer
// Primeiro defer