Enumérateur en Go
-
Utilisez le
iotapour représenter lesenumsdans Go -
Utilisez le
iotapour auto-incrémenter la déclaration de nombre dans Go -
Utilisez le
iotapour créer un comportement commun dans Go
Un enum (abréviation de enumerator) est utilisé pour concevoir des groupements complexes de constantes avec des noms significatifs mais des valeurs simples et distinctes.
En Go, il n’y a pas de type de données enum. Nous utilisons l’identifiant iota qui est prédéfini, et les enums ne sont pas strictement typées.
Utilisez le iota pour représenter les enums dans Go
iota est un identifiant constant qui peut simplifier les déclarations de nombre à incrémentation automatique. Il désigne une constante entière de base zéro.
Le mot-clé iota représente les constantes numériques 0, 1, 2,.... Le terme const apparaît dans le code source remis à 0 et augmente à chaque spécification const.
package main
import "fmt"
const (
a = iota
b = iota
c = iota
)
func main() {
fmt.Println(a, b, c)
}
Production:
0 1 2
Utilisez le iota pour auto-incrémenter la déclaration de nombre dans Go
En utilisant cette méthode, vous pouvez éviter de placer des iota séquentiels devant chaque constante.
package main
import "fmt"
const (
a = iota
b
c
)
func main() {
fmt.Println(a, b, c)
}
Production:
0 1 2
Utilisez le iota pour créer un comportement commun dans Go
On définit une simple enum nommée Direction, qui a quatre valeurs potentielles : "east", "west", "north" et "south".
package main
import "fmt"
type Direction int
const (
East = iota + 1
West
North
South
)
// Giving the type a String method to create common behavior
func (d Direction) String() string {
return [...]string{"East", "West", "North", "South"}[d-1]
}
// Giving the type an EnumIndex function allows you to provide common behavior.
func (d Direction) EnumIndex() int {
return int(d)}
func main() {
var d Direction = West
fmt.Println(d)
fmt.Println(d.String())
fmt.Println(d.EnumIndex())
}
Production:
West
West
2