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
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 )
Exécuter la commande stringer :
stringer -type=Pill
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) + ")" }
Cette méthode peut ensuite être utilisée pour obtenir le nom d'une énumération, par exemple :
fmt.Println(Pill(3).String()) // Paracetamol
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!