Dans Go, les méthodes sont attachées aux types grâce à l'utilisation de récepteurs. Cela soulève la question : qu'est-ce qu'un récepteur exactement et en quoi diffère-t-il d'un paramètre ?
Le récepteur : un type particulier de paramètre
Le récepteur est un cas particulier d'un paramètre. Dans l'erreur de signature de méthode func (p *Page) save(), le récepteur est p. Syntaxiquement, le récepteur est le premier paramètre déclaré dans la signature de la méthode.
La principale différence entre un récepteur et un paramètre réside dans son association avec le type auquel il « appartient ». Le récepteur permet d'associer la méthode au type sur lequel il opère, la rendant plus intuitive et facile à comprendre.
Exemple : méthode save()
Dans le étant donné l'erreur de signature de méthode func (p *Page) save(), le récepteur p est un pointeur vers un type de page. Cela signifie que la méthode save() ne peut être appelée que sur des instances de *Page. La méthode peut accéder et modifier l'objet Page sous-jacent.
Équivalence syntaxique
Bien que le récepteur soit syntaxiquement différent d'un paramètre, il est fonctionnellement équivalent. Les deux extraits de code suivants sont équivalents :
func (p *Page) save() error {
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!