Maison > développement back-end > Golang > Comment puis-je obtenir des noms Go Enum sans écrire de conversions de chaînes explicites ?

Comment puis-je obtenir des noms Go Enum sans écrire de conversions de chaînes explicites ?

Barbara Streisand
Libérer: 2024-12-07 07:45:17
original
695 Les gens l'ont consulté

How Can I Get Go Enum Names Without Writing Explicit String Conversions?

Obtention de noms d'énumérations dans Go sans conversion explicite de chaîne

Dans Go, les énumérations sont généralement implémentées sous forme de constantes affectées de valeurs entières. Cependant, accéder au nom de l'énumération sans créer explicitement une méthode String() peut être fastidieux.

Considérez cet exemple :

const (
    MERCURY = 1
    VENUS = iota
    EARTH
    MARS
    JUPITER
    SATURN
    URANUS
    NEPTUNE
    PLUTO
)
Copier après la connexion

Pour obtenir le nom de l'énumération, on peut définir une String() méthode pour chaque valeur d'énumération, conduisant à une nouvelle saisie répétitive ou à une génération de code. Existe-t-il une alternative ?

Utilisation de l'outil Stringer

Go fournit l'outil Stringer, qui automatise la création de méthodes String() pour les constantes. En exécutant la commande suivante dans le même répertoire que le code ci-dessus :

stringer -type=MERCURY
Copier après la connexion

un nouveau fichier mercury_string.go est généré dans le contexte du package, contenant :

func (MERCURY) String() string
Copier après la connexion

Cette méthode permet récupère facilement le nom de l'énumération et réduit le besoin de conversion de chaîne explicite.

Supplémentaire Remarque :

Bien que cette technique résolve le problème de l'obtention de noms d'énumérations sans méthodes String() explicites, gardez à l'esprit qu'elle nécessite l'utilisation d'un outil externe et n'est pas toujours réalisable dans certains scénarios.

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