Defer

Defer faz com que uma função seja executada quando a função onde o defer foi chamada for retornada.

Você pode chamar o defer mais de uma vez dentro de uma função. Assim, as funções irão ser empilhadas, e essa será a ordem de execução delas antes do return principal.


func Somar(x, y int) int {
    // A função de print será chamada
    // logo antes do return
    defer fmt.Println(x, "+", y)

    resultado := x + y
    return resultado
}
                        
defer.go