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
Mary-Kate Olsenoriginal
2024-12-10 19:40:17887parcourir

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
}

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
}

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!

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