Menu
Coddy logo textTech

Elegir receptores

Parte de la sección Lógica y Flujo del Journey de GO de Coddy — lección 9 de 68.

Ahora que entiendes tanto los receptores de valor como los de puntero, la pregunta clave es: ¿cuándo deberías usar cada uno? La decisión se reduce a lo que tu método necesite hacer con el receptor.

Usa un pointer receiver cuando tu método necesite modificar el struct original. Dado que los pointer receivers trabajan con la instancia real del struct, cualquier cambio realizado dentro del método persistirá después de que el método retorne. Esto es esencial para los métodos que actualizan campos, cambian el estado o realizan operaciones que deban afectar a los datos originales.

Usa un receptor de valor cuando tu método solo necesite leer datos del struct sin cambiarlo. Los receptores de valor trabajan con una copia, por lo que son perfectos para métodos que calculan valores, formatean la salida o realizan cualquier operación que no requiera modificar el struct original. También proporcionan seguridad al garantizar que los datos originales permanezcan inalterados.

Como regla general: si tu método cambia el struct, usa un receptor de puntero. Si tu método solo lee del struct, usa un receptor de valor. Este enfoque aclara las intenciones de tu código y ayuda a prevenir modificaciones no deseadas en tus datos.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Hoja de referencia

Usa un pointer receiver (receptor de puntero) cuando tu método necesite modificar el struct original:

  • Los cambios realizados dentro del método persistirán después de que el método termine
  • Esencial para métodos que actualizan campos o cambian el estado

Usa un value receiver (receptor de valor) cuando tu método solo necesite leer datos del struct:

  • Trabaja con una copia, por lo que los datos originales permanecen sin cambios
  • Perfecto para métodos que calculan valores o formatean la salida
  • Proporciona seguridad al garantizar que no haya modificaciones no deseadas

Regla general: Si tu método cambia el struct, usa un pointer receiver. Si tu método solo lee del struct, usa un value receiver.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo