Ответ
Ресивер (receiver) — это параметр, который связывает метод с конкретным типом, позволяя вызывать его через экземпляр этого типа. Может быть как по значению (копия), так и по указателю (ссылка).
Пример:
type User struct { Name string }
// Value receiver (копия)
func (u User) GetName() string { return u.Name }
// Pointer receiver (ссылка)
func (u *User) SetName(name string) { u.Name = name }
Нюансы:
- Ресивер по указателю изменяет оригинальную структуру.
- Ресивер по значению работает с копией (не влияет на исходные данные).
- Имя ресивера принято делать коротким (1-2 символа, например,
uдляUser).