Назад к вопросам
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
}