ExpertiDict

Go · Intermediário · Português · Técnico

retorno nomeado

/ʁe.ˈtoʁ.nu no.me.ˈa.du/substantivo

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

Veja também

Todos os termos de Go