Sobes.tech
Junior — Middle

Cosa indica il parametro posizionato prima del nome del metodo nella dichiarazione della funzione?

sobes.tech AI

Risposta dell'AI

Il parametro indicato prima del nome del metodo nella dichiarazione di una funzione in Go si chiama ricevitore (receiver). Esso collega la funzione a un tipo specifico, trasformandola in un metodo di quel tipo.

Il ricevitore può essere un valore o un puntatore a un tipo e permette di chiamare il metodo tramite un'istanza di quel tipo.

Esempio:

type Point struct {
    X, Y int
}

// Metodo con ricevitore di tipo Point
func (p Point) Move(dx, dy int) Point {
    p.X += dx
    p.Y += dy
    return p
}

// Metodo con ricevitore puntatore
func (p *Point) MoveInPlace(dx, dy int) {
    p.X += dx
    p.Y += dy
}

Qui, (p Point) e (p *Point) sono ricevitore che permettono di chiamare metodi sugli oggetti di tipo Point.