Maison >développement back-end >Golang >Comment puis-je récupérer les noms Go Enum sans utiliser la méthode String() ?
Récupération des noms d'énumérations dans Go sans méthode String()
Dans Go, il n'est pas possible de récupérer directement les noms d'énumérations sans les définir explicitement sous forme de valeurs de chaîne à l'aide de la méthode String(). Cependant, il existe des approches alternatives pour définir des constantes de manière dynamique.
1. Stringer Tool
Le package d'outils standard fournit l'outil stringer, qui génère automatiquement une méthode String() pour une énumération. En exécutant la commande suivante :
stringer -type=EnumName
dans le même répertoire que la définition d'énumération, l'outil stringer créera un fichier contenant la définition de la méthode String().
2. Énumération basée sur la structure
Une énumération basée sur une structure implique de définir un type d'énumération sous-jacent et de l'intégrer dans une structure. Chaque champ de la structure correspond à une valeur enum et est explicitement étiqueté avec son nom. L'avantage de cette approche est que vous pouvez accéder directement à la valeur enum et à son nom.
3. Énumération basée sur une chaîne
Dans une énumération basée sur une chaîne, les valeurs d'énumération sont représentées sous forme de chaînes. Vous pouvez créer un mappage qui associe chaque valeur de chaîne à une valeur constante correspondante. Cela vous permet de récupérer par programme le nom d'une énumération en fonction de sa valeur.
Bien que ces méthodes fournissent des approches alternatives pour définir dynamiquement des constantes, elles nécessitent toutes que vous redéfinissiez ou spécifiiez explicitement les noms d'énumération. En tant que tels, ils peuvent ne pas offrir un avantage significatif par rapport à la méthode String() conventionnelle en termes de réutilisabilité du code ou de facilité de maintenabilité.
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!