Enumeros de óxido

Enumeros de óxido
En este artículo, aprenderemos sobre enumeraciones o enums para breves. Los enums nos permiten definir un tipo personalizado que consta de variantes. Son muy similares a una estructura y cada estructura válida es un enum válido.

Óxido declarar enum

Podemos definir un enum en óxido usando la palabra clave enum, seguido del nombre del enum. Luego creamos el cuerpo de enumes dentro de un par de frenos rizados.

El cuerpo de enumes está compuesto por posibles variantes separadas por comas.

La sintaxis es como se muestra:

enumenum_name
variante(),
variante2
variante3

El óxido recomienda usar upercamelcasing para nombrar variantes de enum.

Tomemos un caso en el que las enumers puedan ser útiles. Un ejemplo que viene a la mente son los tipos de carga. Hay dos tipos de carga:

  1. Negativo
  2. Positivo

Dado que solo puede haber un tipo de carga en un momento dado, tiene sentido usar un enum. Un ejemplo es como se muestra a continuación:

enumcarge
Negativo,
Positivo

Óxido inicializar enum

Una vez que hemos definido a un enumo, podemos crear instancias de cada una de las variantes. Un ejemplo es como se muestra:

fnmain ()
Sea p = carga :: positivo;
Sea n = carga :: negativo;

Usando enumeraciones con estructuras

Una forma de expandir un enumio es combinarlo con una estructura. Considere el código de ejemplo a continuación:

structelement
Nombre: cadena,
Valor: i32,
CARGA: CARGA,

Una vez que tenemos una estructura, podemos crear una instancia de la estructura y pasar las propiedades del enumo como se muestra en el siguiente ejemplo:

enum carga
Negativo,
Positivo

elemento estructural
Nombre: cadena,
Valor: i32,
CARGA: CARGA,

fn main ()
Deje elem1 = elemento
Nombre: "Sodio".Encadenar(),
Valor: 1,
Cargo: Cargo :: Positivo
;
Deje elem2 = elemento
Nombre: "Cloruro".Encadenar(),
Valor: 1,
CARGA: CARGA :: Negativo
;

En el código de ejemplo anterior, definimos dos instancias de la estructura del elemento. Luego pasamos la propiedad de carga como un valor del enum.

Rasgo de deriva de óxido

Si intenta imprimir las instancias de la estructura anterior, el compilador devolverá un error. Para imprimir la estructura, necesitamos "importar" el rasgo de depuración.

Esto se hace utilizando el atributo Derive. Esto nos permite obtener varias implementaciones de rasgos, como:

  1. Rasgo de depuración
  2. Eq, Partialleq, Ord, Parcialord
  3. Rasgo de hash,
  4. Rasgo predeterminado
  5. Etc.

La sintaxis para derivar un rasgo es como se muestra:

#[Derive (Trait_Name)]

Como necesitamos imprimir la estructura en la consola, podemos derivar el rasgo de depuración como se muestra:

#[Derive (depuración)]
enumcarge
Negativo,
Positivo

#[Derive (depuración)]
structelement
Nombre: cadena,
Valor: i32,
CARGA: CARGA,

Luego podemos usar este rasgo para imprimir la estructura en la consola como:

println!(":#? ", elem1);

Esto debería imprimir la estructura en la consola como:

Puede consultar la documentación Derive en el recurso proporcionado a continuación:

https: // doc.lang óxido.org/referencia/atributos/deriva.html

Conclusión

En este artículo, exploramos cómo crear, usar y trabajar con los tipos de enumeros en óxido. También cubrimos cómo usar enums con estructuras y cómo derivar rasgos.

Gracias por leer!!