Sobes.tech
Назад к вопросам
Junior — Middle
101

Какую функцию выполняет объект receiver с указателем на звёздочку?

Ответ от нейросети

sobes.tech AI

В Go объект receiver с указателем (например, func (r *ReceiverType) Method()) позволяет методу изменять состояние самого объекта, на который указывает receiver. Использование указателя вместо значения дает следующие преимущества:

  • Позволяет изменять поля структуры внутри метода.
  • Избегает копирования больших структур при вызове метода, что повышает производительность.
  • Обеспечивает единообразие, если другие методы принимают указатель.

Пример:

type Counter struct {
    count int
}

func (c *Counter) Increment() {
    c.count++  // изменяем поле структуры через указатель
}

func main() {
    c := Counter{}
    c.Increment()
    fmt.Println(c.count)  // Выведет 1
}