Menu
Coddy logo textTech

Escolhendo Recebedores

Parte da seção Lógica & Fluxo do Journey de GO da Coddy — lição 9 de 68.

Agora que você entende tanto os receivers de valor quanto os de ponteiro, a pergunta fundamental é: quando você deve usar cada um? A decisão resume-se ao que seu método precisa fazer com o receiver.

Use um receptor de ponteiro quando seu método precisar modificar a struct original. Como os receptores de ponteiro trabalham com a instância real da struct, quaisquer alterações feitas dentro do método persistirão após o retorno do método. Isso é essencial para métodos que atualizam campos, alteram o estado ou realizam operações que devem afetar os dados originais.

Use um receptor de valor quando seu método precisar apenas ler dados da struct sem alterá-los. Receptores de valor trabalham com uma cópia, por isso são perfeitos para métodos que calculam valores, formatam a saída ou realizam qualquer operação que não exija a modificação da struct original. Eles também oferecem segurança ao garantir que os dados originais permaneçam inalterados.

Como regra geral: se o seu método altera a struct, use um pointer receiver. Se o seu método apenas lê da struct, use um value receiver. Essa abordagem torna claras as intenções do seu código e ajuda a prevenir modificações não intencionais nos seus dados.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Folha de consulta

Use um receptor de ponteiro (pointer receiver) quando seu método precisar modificar a struct original:

  • As alterações feitas dentro do método persistirão após o retorno do método
  • Essencial para métodos que atualizam campos ou alteram o estado

Use um receptor de valor (value receiver) quando seu método precisar apenas ler dados da struct:

  • Trabalha com uma cópia, portanto os dados originais permanecem inalterados
  • Perfeito para métodos que calculam valores ou formatam a saída
  • Oferece segurança ao garantir que não ocorram modificações indesejadas

Regra geral: Se o seu método altera a struct, use um receptor de ponteiro. Se o seu método apenas lê da struct, use um receptor de valor.

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo