Golang Enum

Golang Enum
Une enum, abréviation de l'énumérateur, est une données spéciale utilisée pour déclarer un ensemble de variables constantes nommées. En utilisant des énumérations, nous pouvons créer un ensemble de constantes complexes avec des noms de variables descriptifs et des valeurs uniques.

Discutons de la façon de travailler avec les énumérateurs en Go.

Golang Enum

La syntaxe pour déclarer une énumération dans GO est comme indiqué:

Tapez enum_namedata_type
const (
VariableTenum_name = iota
variable2
variable3

)

Supposons que nous voulons représenter les jours d'une semaine. La méthode la plus élémentaire consiste à créer une cartographie des valeurs souhaitées.

Un exemple:

const (
Dimanche int = 1
Lundi = 2
Mardi = 3
Mercredi = 4
Jeudi = 5
Vendredi = 6
Samedi = 7
)

Nous pouvons également représenter les jours comme un mappage de cordes comme indiqué:

const (
Dimanche String = "Sun"
Lundi = "lun"
Mardi = "mar"
Mercredi = "Mer"
Jeudi = "Thur"
Vendredi = "ven"
Samedi = "SAT"
)

Maintenant, vous pouvez demander? Quel est le problème avec la représentation des jours de la semaine comme indiqué ci-dessus? Premièrement, cela semble répétitif et très sujet aux conflits.

Par exemple, supposons que nous ayons deux énumérations:

// un
const (
Dimanche int = 1
Lundi = 2
Mardi = 3
Mercredi = 4
Jeudi = 5
Vendredi = 6
Samedi = 7
)
// deux
const (
pilote int = 1
chef = 2
)

Si nous vérifions la comparaison, comme:

fmt.Println (dimanche == pilote)

Le code renvoie vrai. Cela ne devrait pas être le cas.

Nous pouvons résoudre ce problème en créant une enum décrivant les jours de la semaine. Un exemple de code est comme indiqué:

package principal
funcmain ()
Type Daysofweek int64
const (
Dimanche jours de la semaine = 1
Lundi = 2
Mardi = 3
Mercredi = 4
Jeudi = 5
Vendredi = 6
Samedi = 7
)

Ici, nous définissons un nouveau type appelé Dayofweek () avec un entier comme type de base. Cela aide à définir les valeurs const comme leur type.

Pour assurer l'unicité dans les valeurs, nous pouvons utiliser le mot-clé IOTA. Le mot-clé créera un ensemble successif de valeurs constantes uniques:

package principal
Importer "FMT"
funcmain ()
Type Daysofweek int64
const (
Dimanche Daysofweek = Iota
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
)

Le code précédent remplace les valeurs par un ensemble de valeurs entières successives.

Une fois que nous avons déclaré une énumération, nous pouvons créer une variable de ce type comme indiqué:

package principal
Importer "FMT"
funcmain ()
Typedaysofweekint64
const (
Dimanche Daysofweek = Iota
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
)
var d Daysofweek
D = jeudi
if (d == jeudi)
fmt.Println ("Jour de la semaine:", D)

Dans le code précédent, nous déclarons une variable D avec Type DaysOfweek (). Nous attribuons ensuite la valeur au type. Ensuite, nous pouvons vérifier si la valeur est égale à l'une des énumérations.

La sortie résultante est comme:

Jour de la semaine: 4

Méthode de chaîne d'énumération

Supposons que nous voulons ajouter un message plus descriptif. Nous pouvons ajouter une méthode pour le type Daysofweek comme indiqué:

package principal
Importer "FMT"
Typedaysofweekint64
const (
Dimanche Daysofweek = Iota
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
)
func (d daysofweek) string () string
return [] String "Sunday", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi" [d]

funcmain ()
Var Day Daysofweek = jeudi
Jour de commutation
Cas dimanche:
fmt.Println ("Sunday")
Cas lundi:
fmt.Println ("lundi")
Cas mardi:
fmt.Println ("mardi")
Cas mercredi:
fmt.Println ("mercredi")
Case jeudi:
fmt.Println ("jeudi")
Cas vendredi:
fmt.Println ("vendredi")
Cas samedi:
fmt.Println ("samedi")
défaut:
fmt.Println ("jour invalide")

L'utilisation de la méthode String () est très utile car elle permet d'implémenter l'imprimabilité d'une chaîne au lieu de créer un type d'énumération.

Valeur de saut en énumération

Si vous souhaitez sauter une valeur dans la liste des constantes, vous pouvez utiliser un identifiant vierge comme indiqué:

Type Daysofweek int64
const (
Dimanchedaysofweek = iota
Lundi
_
Mercredi
Jeudi
Vendredi
Samedi
)

Conclusion

Ce guide couvre la mise en œuvre et le travail avec des énumérateurs dans le langage de programmation Go. De plus, la méthode de la chaîne d'énumération et les valeurs de saut d'énumération ont été discutées avec des exemples. Nous espérons que vous avez trouvé cet article utile. Découvrez d'autres articles sur les conseils pour plus de conseils et de tutoriels.