Golang enum

Golang enum
Una enumación, abreviatura de enumerador, es un datos especiales utilizados para declarar un conjunto de variables constantes nombradas. Usando enums, podemos crear un conjunto de constantes complejas con nombres de variables descriptivos y valores únicos.

Discutamos cómo trabajar con enumeradores en Go.

Golang enum

La sintaxis para declarar un enum en GO es como se muestra:

escriba enum_namedata_type
const (
variableNENUM_NAME = IOTA
variable2
variable3

)

Supongamos que queremos representar los días de una semana. El método más básico es crear una asignación de los valores deseados.

Un ejemplo:

const (
Domingo int = 1
Lunes = 2
Martes = 3
Miércoles = 4
Jueves = 5
Viernes = 6
Sábado = 7
)

También podemos representar los días como un mapeo de cadenas como se muestra:

const (
String String = "Sun"
Lunes = "Mon"
Martes = "martes"
Miércoles = "mié"
Jueves = "Thur"
Viernes = "viernes"
Sábado = "SAT"
)

Ahora puede preguntar? ¿Qué hay de malo en representar los días de la semana como se muestra arriba?? Primero, parece repetitivo y muy propenso a los conflictos.

Por ejemplo, supongamos que tenemos dos enums como:

// uno
const (
Domingo int = 1
Lunes = 2
Martes = 3
Miércoles = 4
Jueves = 5
Viernes = 6
Sábado = 7
)
// dos
const (
controlador int = 1
Chef = 2
)

Si verificamos la comparación, como:

fmt.Println (domingo == conductor)

El código devuelve verdadero. Éste no debería ser el caso.

Podemos arreglar esto creando un enum que describe los días de la semana. Un código de ejemplo es como se muestra:

paquete principal
funcmain ()
Escriba DaysOfWeek int64
const (
Domingo Días de Week = 1
Lunes = 2
Martes = 3
Miércoles = 4
Jueves = 5
Viernes = 6
Sábado = 7
)

Aquí, definimos un nuevo tipo llamado DaysOfWeek () con un entero como tipo base. Esto ayuda a definir los valores constante como su tipo.

Para garantizar la singularidad en los valores, podemos usar la palabra clave IOTA. La palabra clave creará un conjunto sucesivo de valores constantes únicos:

paquete principal
importar "fmt"
funcmain ()
Escriba DaysOfWeek int64
const (
Domingo DaysOfWeek = IOTA
Lunes
Martes
Miércoles
Jueves
Viernes
Sábado
)

El código anterior reemplaza los valores con un conjunto de valores enteros sucesivos.

Una vez que declaramos una enumación, podemos crear una variable de ese tipo como se muestra:

paquete principal
importar "fmt"
funcmain ()
typedaysofweekint64
const (
Domingo DaysOfWeek = IOTA
Lunes
Martes
Miércoles
Jueves
Viernes
Sábado
)
var d Daysof week
d = jueves
if (d == jueves)
fmt.Println ("Día de la semana:", D)

En el código anterior, declaramos una variable D con tipo DaysOfWeek (). Luego asignamos el valor al tipo. A continuación, podemos verificar si el valor es igual a uno de los enum.

La salida resultante es como:

Día de la semana: 4

Método de cadena enum

Supongamos que queremos agregar un mensaje más descriptivo. Podemos agregar un método para el tipo DaysOf Week como se muestra:

paquete principal
importar "fmt"
typedaysofweekint64
const (
Domingo DaysOfWeek = IOTA
Lunes
Martes
Miércoles
Jueves
Viernes
Sábado
)
func (d daysofweek) string () string
return [] cadena "domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado" [d]

funcmain ()
var día días de week = jueves
Día del cambio
Caso Domingo:
fmt.Println ("domingo")
Caso el lunes:
fmt.Println ("lunes")
Caso martes:
fmt.Println ("martes")
Caso miércoles:
fmt.Println ("miércoles")
Caso Jueves:
fmt.Println ("jueves")
Caso Viernes:
fmt.Println ("viernes")
Caso del sábado:
fmt.Println ("Sábado")
por defecto:
fmt.Println ("día inválido")

El uso del método String () es muy útil, ya que permite implementar la imprimabilidad de una cadena en lugar de crear un tipo enum.

Valor de salto de enum

Si desea omitir un valor en la lista de constantes, puede usar un identificador en blanco como se muestra:

Escriba DaysOfWeek int64
const (
Sundaydaysofweek = IOTA
Lunes
_
Miércoles
Jueves
Viernes
Sábado
)

Conclusión

Esta guía cubre la implementación y el trabajo con enumeradores en el lenguaje de programación GO. Además, el método de cadena enum y los valores de omisión enum se discutieron con ejemplos. Esperamos que hayas encontrado este artículo útil. Echa un vistazo a otros artículos de Sugerencia de Linux para obtener más consejos y tutoriales.