rust – Enum

Una enumeración en Rust es un tipo de datos personalizado que representa datos que pueden ser cualquiera entre varias variantes posibles. Cada variante en la enumeración puede tener datos asociados opcionalmente. Un tipo enumerado se define utilizando la palabra clave enum antes del nombre de la enumeración. También consta de métodos.

Sintaxis:

enum name_of_enum{
variant_1,
variant_2,
.
.
variant_n
}

Aquí name_of_enum es el nombre dado a Enum y variant_1 , variant_2 , …… variant_n son los valores de la enumeración.

Ejemplo:

enum Month_name{
January,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
}

En el ejemplo anterior, Month_name es el nombre de la enumeración y enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre, noviembre y diciembre son valores de una enumeración. Un valor de la enumeración puede coincidir con cualquiera de las variantes. Por esta razón, una enumeración a veces se denomina ‘tipo de suma’: el conjunto de valores posibles de la enumeración es la suma de los conjuntos de valores posibles para cada variante.

Vamos a crear la instancia de cada una de las variantes. Parece que:

let jan = Month_name :: January;
let feb = Month_name :: February;
let mar = Month_name :: March;
let apr = Month_name :: April;
let may = Month_name :: May;
let jun = Month_name :: June;
let jul = Month_name :: July;
let aug = Month_name :: August;
let sep = Month_name :: September;
let oct = Month_name :: October;
let nov = Month_name :: November;
let dec = Month_name :: December;

Cada variante de la enumeración tiene un espacio de nombres bajo su identificador y se usan dos puntos dobles .

Veamos el código.

Rust

// The `derive` attribute automatically creates the implementation
// required to make this `enum` printable with `fmt::Debug`.
#[derive(Debug)]
  
enum Month_name {
January,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
}
fn main() {
    let jan = Month_name :: January;
    let feb = Month_name :: February;
    let mar = Month_name :: March;
    let apr = Month_name :: April;
    let may = Month_name :: May;
    let jun = Month_name :: June;
    let jul = Month_name :: July;
    let aug = Month_name :: August;
    let sep = Month_name :: September;
    let oct = Month_name :: October;
    let nov = Month_name :: November;
    let dec = Month_name :: December;
  
   println!("{:?}",jan);
   println!("{:?}",feb);
   println!("{:?}",dec);
}

Producción:

January
February
December

En el ejemplo anterior, Month_name es el nombre de la enumeración. Aquí jan , feb y dec son los nombres del mes que representan variaciones de la enumeración Month_name   para enero, febrero y diciembre, respectivamente.

Publicación traducida automáticamente

Artículo escrito por sushmanag73 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *