Метод с получателем-указателем: func (p *T) M(). Вызывается и для T, и для *T (компилятор подставит адрес). В методе можно менять поля получателя. Для больших структур и когда нужно изменять состояние используют pointer receiver.
func (p *T) M()
T
*T