Sobes.tech
Junior — Middle

Mida näitab parameeter, mis on märgitud funktsiooni deklaratsioonis meetodi nime ees?

sobes.tech AI

Vastus AI-lt

Parameeter, mis on märgitud enne Go keeles funktsiooni deklaratsiooni meetodi nime, nimetatakse võtja (receiver). See ühendab funktsiooni kindla tüübiga ja muudab selle selle tüübi meetodiks.

Võtja võib olla väärtus või viit tüübile ning võimaldab meetodi kutsumist selle tüübi eksemplari kaudu.

Näide:

type Point struct {
    X, Y int
}

// Meetod Point tüüpi võtja abil
func (p Point) Move(dx, dy int) Point {
    p.X += dx
    p.Y += dy
    return p
}

// Meetod viitava võtja abil
func (p *Point) MoveInPlace(dx, dy int) {
    p.X += dx
    p.Y += dy
}

Siin on (p Point) ja (p *Point) võtjad, mis võimaldavad kutsuda meetodeid Point tüüpi objektidel.