Sobes.tech
Junior — Middle

¿Qué función cumple el objeto receiver con un puntero a la estrella?

sobes.tech AI

Respuesta de la IA

En Go, el receptor de objeto con puntero (por ejemplo, func (r *ReceiverType) Method()) permite que el método modifique el estado del propio objeto al que apunta el receptor. Usar un puntero en lugar de un valor ofrece las siguientes ventajas:

  • Permite modificar los campos de la estructura dentro del método.
  • Evita la copia de estructuras grandes al llamar al método, lo que mejora el rendimiento.
  • Proporciona coherencia si otros métodos aceptan punteros.

Ejemplo:

type Counter struct {
    count int
}

func (c *Counter) Increment() {
    c.count++  // modificamos el campo de la estructura a través del puntero
}

func main() {
    c := Counter{}
    c.Increment()
    fmt.Println(c.count)  // Imprimirá 1
}