Maison >développement back-end >Golang >Comment puis-je garantir que les modifications des champs de structure persistent dans les méthodes Go ?

Comment puis-je garantir que les modifications des champs de structure persistent dans les méthodes Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-16 10:37:03424parcourir

How Can I Ensure Struct Field Modifications Persist in Go Methods?

Rétablissement d'un champ de structure après modification

Dans Go, la modification d'un champ de structure au sein d'une méthode peut ne pas conserver les modifications en dehors de la méthode. Cela se produit lorsque la structure est passée par valeur, ce qui entraîne la modification d'une seule copie de la structure.

Pour résoudre ce problème, les structures doivent être passées par pointeur en utilisant l'opérateur astérisque (*) avant le nom de la structure dans la déclaration du type de récepteur. Cela garantit que la structure originale, plutôt qu'une copie, est modifiée dans la méthode.

Par exemple, dans le code fourni :

func (this MockConnector) sendCommand(payload map[string]string) {

doit être modifié en :

func (this *MockConnector) sendCommand(payload map[string]string) {

De plus, il est considéré comme une convention dans Go d'utiliser un nom de récepteur autre que celui-ci ou soi-même.

En suivant ces directives, les champs de structure peuvent être modifiés efficacement dans les méthodes et leurs modifications seront préservées. une fois la méthode terminée.

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