Методы с получателями в Go указывают, с каким типом связан метод. Они появляются между ключевым словом func и названием метода, определяя тип получателя для этого метода.
Базовый синтаксис для получателя метода:
func (receiver ReceiverType) MethodName() ReturnType {
// тело метода
}
Go поддерживает два типа получателей:
func (p Person) GetName() string {
return p.Name
}
С получателем по значению изменения внутри метода не влияют на исходное значение.
func (p *Person) SetName(name string) {
p.Name = name
}
С получателем по указателю изменения влияют на исходное значение, потому что ты модифицируешь реальные данные, а не копию.
Тип получателя определяет то, как метод взаимодействует со своими данными. Это способ Go реализовать объектно-ориентированную функциональность без традиционного наследования классов.
Метод с value receiver может изменять поля исходной структуры, и эти изменения будут сохраняться после завершения вызова метода.
Новый — ещё не проверен сообществом
Вы