Maison > développement back-end > Golang > Comment modifier les valeurs de carte non adressables dans Go ?

Comment modifier les valeurs de carte non adressables dans Go ?

DDD
Libérer: 2024-11-24 01:17:14
original
350 Les gens l'ont consulté

How to Modify Non-Addressable Map Values in Go?

Modification des valeurs de la carte dans Go : résolution de l'erreur « Impossible d'attribuer à une paire »

Dans Go, lorsque vous rencontrez le message d'erreur « peut pas lui attribuer" lorsque vous essayez de modifier une paire dans une carte, il est important de comprendre le concept d'adressabilité.

Les valeurs de la carte dans Go sont non adressables, ce qui signifie qu'on ne peut pas leur attribuer de valeurs directement à l'aide de l'opérateur point (.). Il s'agit d'un choix de conception délibéré pour donner aux implémentations de cartes la flexibilité de déplacer les valeurs en mémoire selon les besoins.

Pour modifier une valeur de carte qui n'est pas adressable, comme une paire, vous avez deux options :

  1. Utiliser un pointeur comme valeur de carte : En définissant la valeur de carte comme un pointeur vers la paire, vous pouvez modifier la valeur en déréférençant le pointeur à l'aide de l'opérateur d'indirection (*).
dict := make(map[string]*pair)
dict["xxoo"] = &pair{5.0, 2.0}
dict["xxoo"].b = 5.0
Copier après la connexion
  1. Copier ou réaffecter la valeur : Au lieu de modifier directement la valeur de la carte, vous pouvez créer une copie, modifiez-le, puis réaffectez-le à la carte. Vous pouvez également remplacer entièrement la valeur par une nouvelle.
// Copy and modify
dict := make(map[string]pair)
dict["xxoo"] = pair{5.0, 2.0}
p := dict["xxoo"]
p.b = 5.0
dict["xxoo"] = p

// Replace the value
dict["xxoo"] = pair{5.0, 5.0}
Copier après la connexion

En comprenant l'adressabilité et en utilisant ces techniques, vous pouvez modifier efficacement les valeurs de carte qui ne sont pas directement adressables.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal