Senior
O que é defer em Go? O que o código com dois defer irá mostrar?
sobes.tech IA
Resposta da IA
Em 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 do seu retorno.
Se houver várias declarações defer numa função, elas são executadas na ordem inversa à sua declaração (pilha de chamadas).
Exemplo:
package main
import "fmt"
func main() {
defer fmt.Println("Primeiro defer")
defer fmt.Println("Segundo defer")
fmt.Println("Código principal")
}
A saída será:
Código principal
Segundo defer
Primeiro defer
Ou seja, primeiro o código principal é executado, depois as chamadas diferidas na ordem inversa.