Ответ
Принадлежность метода к структуре в Go определяется получателем (receiver) в объявлении метода. Получатель указывается перед именем функции и может быть как значением, так и указателем на тип структуры.
type User struct {
Name string
}
// Метод с получателем по значению
func (u User) GetName() string {
return u.Name
}
// Метод с получателем по указателю
func (u *User) SetName(name string) {
u.Name = name
}
Ключевые моменты:
- Метод с получателем по значению работает с копией структуры
- Метод с получателем по указателем может модифицировать оригинальную структуру
- Go автоматически преобразует между вызовами методов для значений и указателей