Middle
O que é o operador defer na linguagem Go?
sobes.tech IA
Resposta da IA
O operador defer é utilizado para executar funções ou métodos de forma diferida. As funções marcadas com defer são executadas imediatamente antes de sair da função que as contém.
Princípios de funcionamento do defer:
- Executa-se ao sair da função atual, seja por execução normal ou por pânico.
- Múltiplos
deferna mesma função são executados na ordem LIFO (Last-In, First-Out). - É útil para limpar recursos, como fechar ficheiros ou conexões de rede.
Exemplo de uso:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Abrindo o ficheiro.")
file, err := os.Open("example.txt")
if err != nil {
// Tratamento do erro
return
}
// Fecho diferido do ficheiro
defer file.Close()
defer fmt.Println("O ficheiro será fechado.") // Este defer será executado primeiro (LIFO)
fmt.Println("A processar o ficheiro...")
// Trabalho adicional com o ficheiro
}
Saída do programa:
Abrindo o ficheiro.
A processar o ficheiro...
O ficheiro será fechado.