Go · Intermediário · Português · Técnico
retorno nomeado
Resultados da função declarados com nome na assinatura, que viram variáveis locais e permitem um return sem argumentos.
Onde usar
Documentam o que cada retorno significa e permitem alterar o erro dentro de um defer. O return nu em funções longas dificulta a leitura e é criticado em review.
Em código
func read() (n int, err error) {
defer func() {
if err != nil { n = -1 }
}()
return 5, errors.New("falhou")
}
n, err := read()
fmt.Println(n, err)Exemplos
Usa retorno nomeado só para o defer conseguir ajustar o erro.
Esse return nu numa função de cinquenta linhas ninguém entende.
Cuidado
Cuidado com shadowing: declarar 'err :=' dentro do corpo cria outra variável, e o retorno nomeado continua nil.
Sinônimos
named results