Enumérateur en Go
-
Utilisez le
iota
pour représenter lesenums
dans Go -
Utilisez le
iota
pour auto-incrémenter la déclaration de nombre dans Go -
Utilisez le
iota
pour 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