Maison >développement back-end >Golang >Méthodes Go : quelle est la différence entre un récepteur et un paramètre ?

Méthodes Go : quelle est la différence entre un récepteur et un paramètre ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-29 08:15:13281parcourir

Go Methods: What's the Difference Between a Receiver and a Parameter?

Comprendre la distinction entre paramètre et récepteur dans Go

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn