Maison > développement back-end > Golang > Comment puis-je récupérer le nom d'une énumération Go sans définir manuellement une méthode `String()` ?

Comment puis-je récupérer le nom d'une énumération Go sans définir manuellement une méthode `String()` ?

DDD
Libérer: 2024-12-07 01:59:15
original
1011 Les gens l'ont consulté

How Can I Retrieve the Name of a Go Enum Without Manually Defining a `String()` Method?

Est-il possible d'obtenir le nom d'une énumération sans ajouter la méthode String() dans Golang

Dans Go, pour obtenir le nom d'une énumération, il est généralement nécessaire de définir une méthode de chaîne func (TheEnum) String(). Cependant, cela peut être fastidieux, surtout s'il y a de nombreuses énumérations.

Une alternative consiste à utiliser l'outil stringer de Go du package d'outils standard. Cela peut être fait en exécutant la commande suivante dans le même répertoire que votre définition d'énumération :

stringer -type=Pill
Copier après la connexion
Copier après la connexion

Cela créera un fichier contenant une définition d'une méthode de chaîne func (Pill) String().

package painkiller

type Pill int

const (
    Placebo Pill = iota
    Aspirin
    Ibuprofen
    Paracetamol
    Acetaminophen = Paracetamol
)
Copier après la connexion

Exécuter la commande stringer :

stringer -type=Pill
Copier après la connexion
Copier après la connexion

Crée ce qui suit file:

// Code generated by "stringer -type=Pill"; DO NOT EDIT.

package painkiller

import "strconv"

func (p Pill) String() string {
    switch p {
    case Placebo:
        return "Placebo"
    case Aspirin:
        return "Aspirin"
    case Ibuprofen:
        return "Ibuprofen"
    case Paracetamol:
        return "Paracetamol"
    case Acetaminophen:
        return "Acetaminophen"
    }
    return "Pill(" + strconv.FormatInt(int64(p), 10) + ")"
}
Copier après la connexion

Cette méthode peut ensuite être utilisée pour obtenir le nom d'une énumération, par exemple :

fmt.Println(Pill(3).String()) // Paracetamol
Copier après la connexion

L'outil stringer peut être utilisé avec la commande go generate dans Go 1.4 pour générer automatiquement une méthode de chaîne func (TheEnum) String() pour chaque énumération.

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