Sobes.tech
Junior — Middle

Ką reiškia parametras, nurodytas prieš metodo pavadinimą funkcijos deklaracijoje?

sobes.tech AI

Atsakymas iš AI

Go kalboje funkcijos deklaracijoje metodo pavadinimo prieš nurodytas parametras vadinamas priėmėju (receiver). Jis sujungia funkciją su tam tikru tipu ir paverčia ją šio tipo metodu.

Priėmėjas gali būti reikšmė arba nuoroda į tipą ir leidžia iškviesti metodą per šio tipo egzempliorių.

Pavyzdys:

type Point struct {
    X, Y int
}

// Metodas su Point tipu kaip priėmėju
func (p Point) Move(dx, dy int) Point {
    p.X += dx
    p.Y += dy
    return p
}

// Metodas su nuoroda kaip priėmėju
func (p *Point) MoveInPlace(dx, dy int) {
    p.X += dx
    p.Y += dy
}

Čia (p Point) ir (p *Point) yra priėmėjai, leidžiantys iškviesti metodus ant Point tipo objektų.