Sobes.tech
Junior — Middle

Pode explicar o princípio de funcionamento e a aplicação da construção defer na linguagem Go?

sobes.tech IA

Resposta da IA

No Go, a palavra-chave defer é usada para chamar uma função de forma diferida: ela será executada no momento de saída da função atual, independentemente de como a saída ocorre (normalmente ou por erro). Isso é útil para liberar recursos, fechar arquivos, desbloquear mutexes e outras operações de limpeza.

Exemplo:

func readFile(filename string) error {
    file, err := os.Open(filename)
    if err != nil {
        return err
    }
    defer file.Close() // o arquivo será fechado ao sair da função

    // trabalho com o arquivo
    return nil
}

Assim, defer ajuda a escrever um código mais limpo e seguro, garantindo a execução de ações importantes de finalização.