A method's receiver is the value it operates on, declared before the method name. It can be a value receiver (operates on a copy) or a pointer receiver (operates on the original, can modify it). Choosing correctly matters for both correctness (mutation) and performance.
Value receiver — operates on a COPY
Counter { count }
Increment() {
c.count++
}
c := Counter{}
c.Increment()
fmt.Println(c.count)
