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
}