Sobes.tech
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