Maison > développement back-end > Golang > Récepteur vs paramètre dans les méthodes Go : quelle est la vraie différence ?

Récepteur vs paramètre dans les méthodes Go : quelle est la vraie différence ?

Linda Hamilton
Libérer: 2024-11-28 07:59:10
original
234 Les gens l'ont consulté

Receiver vs. Parameter in Go Methods: What's the Real Difference?

Récepteur vs paramètre dans les méthodes Go

Dans Go, comprendre le concept de récepteurs et de paramètres est crucial lorsque l'on travaille avec des méthodes.

Les signatures de méthode incluent souvent un paramètre déclaré comme récepteur de la méthode. Ce récepteur est un cas particulier de paramètre, malgré son nom.

Qu'est-ce qu'un récepteur ?

Le récepteur est une fonctionnalité de syntaxe qui permet d'associer des méthodes à types spécifiques. Dans l'exemple donné :

func (p *Page) save() error
Copier après la connexion

La p *Page est le récepteur, indiquant que la méthode de sauvegarde est attachée au *Type de page.

Différence entre le récepteur et le paramètre

Le récepteur n'est pas un paramètre traditionnel dans le sens où il n'a pas besoin d'être explicitement transmis à la méthode. Au lieu de cela, le destinataire est automatiquement fourni par l'appelant.

Par exemple, pour appeler la méthode save, vous écririez :

p := &Page{"My Page", "This is my page"}
p.save()
Copier après la connexion

Dans ce cas, la variable p *Page est la récepteur pour la méthode de sauvegarde.

Syntactic Sugar

L'utilisation d'un récepteur est simplement syntaxique sucre. Il permet d'attacher des méthodes aux types de manière pratique. Cependant, vous pouvez obtenir le même résultat en déclarant le récepteur comme paramètre régulier :

func save(p *Page) error
Copier après la connexion

Les deux déclarations sont équivalentes et produiront le même résultat.

Pour plus de précisions, reportez-vous au a fourni une réponse pour des explications supplémentaires.

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