Junior — Middle
Qual è la funzione dell'oggetto receiver con un puntatore alla stella?
sobes.tech AI
Risposta dell'AI
In Go, il ricevitore dell'oggetto con puntatore (ad esempio, func (r *ReceiverType) Method()) consente al metodo di modificare lo stato dell'oggetto stesso a cui il ricevitore fa riferimento. Usare un puntatore invece di un valore offre i seguenti vantaggi:
- Permette di modificare i campi della struttura all'interno del metodo.
- Evita la copia di grandi strutture durante la chiamata del metodo, migliorando le prestazioni.
- Garantisce coerenza se altri metodi accettano puntatori.
Esempio:
type Counter struct {
count int
}
func (c *Counter) Increment() {
c.count++ // modifica il campo della struttura tramite il puntatore
}
func main() {
c := Counter{}
c.Increment()
fmt.Println(c.count) // Stampa 1
}