🟡 Средний · 2 очк. Структуры и методы
Чем отличается метод с pointer receiver от value receiver?
A Ничем
B Pointer receiver может изменять структуру
C Value receiver быстрее
D Pointer receiver - только для интерфейсов
Объяснение вопроса

Метод с value receiver func (s MyStruct) Method() получает копию структуры - любые изменения полей внутри метода не сохраняются в оригинале. Метод с pointer receiver func (s *MyStruct) Method() получает указатель и может менять поля оригинала. Для больших структур pointer receiver эффективнее (не копируется вся структура). Go автоматически подставляет &s при вызове метода по указателю, так что вызывать можно одинаково: s.Method().

func (p *Point) Move(dx, dy int) {
    p.X += dx
    p.Y += dy
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.