Enumerador en Go
-
Use el
iota
para representarenums
en Go -
Utilice la
iota
para la declaración de número de incremento automático en Go -
Usa el
iota
para crear un comportamiento común en Go
Se utiliza un enum
(abreviatura de enumerador) para diseñar agrupaciones complicadas de constantes con nombres significativos pero valores simples y distintos.
En Go, no existe el tipo de datos enum
. Usamos el identificador iota
que está predefinido, y los enums
no están estrechamente tipados.
Use el iota
para representar enums
en Go
iota
es un identificador constante que puede simplificar las declaraciones de números de incremento automático. Denota una constante entera de base cero.
La palabra clave iota
representa las constantes numéricas 0, 1, 2,...
. El término const
que aparece en el código fuente se restablece a 0
y aumenta con cada especificación de const
.
package main
import "fmt"
const (
a = iota
b = iota
c = iota
)
func main() {
fmt.Println(a, b, c)
}
Producción :
0 1 2
Utilice la iota
para la declaración de número de incremento automático en Go
Con este método, puede evitar colocar iota
secuencial delante de cada constante.
package main
import "fmt"
const (
a = iota
b
c
)
func main() {
fmt.Println(a, b, c)
}
Producción :
0 1 2
Usa el iota
para crear un comportamiento común en Go
Definimos una enum
simple denominada Direction
, que tiene cuatro valores potenciales: "east"
, "west"
, "north"
y "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())
}
Producción :
West
West
2