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

Что обозначает параметр, указанный перед именем метода в объявлении функции?

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

sobes.tech AI

Параметр, указанный перед именем метода в объявлении функции в Go, называется ресивером (receiver). Он связывает функцию с определённым типом, превращая её в метод этого типа.

Ресивер может быть значением или указателем на тип и позволяет вызывать метод через экземпляр этого типа.

Пример:

type Point struct {
    X, Y int
}

// Метод с ресивером типа Point
func (p Point) Move(dx, dy int) Point {
    p.X += dx
    p.Y += dy
    return p
}

// Метод с указательным ресивером
func (p *Point) MoveInPlace(dx, dy int) {
    p.X += dx
    p.Y += dy
}

Здесь (p Point) и (p *Point) — ресиверы, которые позволяют вызывать методы на объектах типа Point.