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
Libérer: 2024-11-29 08:15:13
original
200 Les gens l'ont consulté

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 {
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal