Maison > développement back-end > Golang > Comment puis-je détecter si une propriété Struct a été définie dans Go ?

Comment puis-je détecter si une propriété Struct a été définie dans Go ?

Mary-Kate Olsen
Libérer: 2024-12-10 19:40:17
original
889 Les gens l'ont consulté

How Can I Detect if a Struct Property Has Been Set in Go?

Détection des propriétés modifiées dans les structures

Dans Go, déterminer si une propriété d'une structure a été définie peut être difficile. Contrairement à d'autres langages, il n'existe pas de mécanisme intégré pour vérifier les valeurs non initialisées dans les structures.

Utiliser des pointeurs (suggestion de dyoo)

Comme mentionné par dyoo, utiliser des pointeurs pour les propriétés de structure vous permet de faire la différence entre les valeurs définies et non définies. Si le pointeur est nul, la valeur est considérée comme non définie.

Exemple avec des pointeurs :

type MyStruct struct {
    Property *string
}

// ...

if s1.Property != nil {
    // do something with this
}
Copier après la connexion

Utilisation de chaînes vides (réponse du responsable)

Si vous préférez utiliser des chaînes au lieu de pointeurs, vous pouvez comparer la valeur avec une chaîne vide pour déterminer s'il a été défini.

Exemple avec des chaînes :

type MyStruct struct {
    Property string
}

// ...

if s1.Property != "" {
    // do something with this
}
Copier après la connexion

Dans l'exemple de code fourni, s1.Property a une valeur non vide et sera prise en compte défini, tandis que s2.Property est vide et sera considéré comme non défini.

Alternative Méthodes

En plus des approches mentionnées, vous pouvez explorer d'autres options telles que l'utilisation de la réflexion ou la définition de vos propres fonctions de définition qui suivent les changements dans la valeur de la propriété. Cependant, ces méthodes peuvent nécessiter du code et de la complexité 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