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
}