Il receiver di un metodo è il valore su cui opera, dichiarato prima del nome del metodo. Può essere un value receiver (opera su una copia) o un pointer receiver (opera sull'originale, può modificarlo). Scegliere correttamente è importante sia per la correttezza (mutazione) che per le prestazioni.
Value receiver — opera su una COPIA
Counter { count }
Increment() {
c.count++
}
c := Counter{}
c.Increment()
fmt.Println(c.count)
