Rust Enums

Rust Enums
I denne artikkelen vil vi lære om oppregninger, eller enums for kort. Enums lar oss definere en tilpasset type bestående av varianter. De ligner tett på en struktur, og hver gyldig struktur er en gyldig enum.

Rust erklærer enum

Vi kan definere en enum i rust ved hjelp av enum -nøkkelordet, etterfulgt av navnet på enum. Vi lager deretter enumkroppen inne i et par krøllete seler.

Enum -organet består av mulige varianter atskilt med komma.

Syntaksen er som vist:

enumenum_name
variant (),
Variant2
Variant3
..

Rusten anbefaler å bruke store bokstaver for å navngi enumvarianter.

La oss ta en sak der enums kan være nyttig. Et eksempel som kommer til tankene er typer ladning. Det er to typer ladninger:

  1. Negativ
  2. Positivt

Siden det bare kan være en type ladning på et gitt tidspunkt, er det fornuftig å bruke en enum. Et eksempel er som vist nedenfor:

enumcharge
Negativ,
Positivt

Rust initialiserer enum

Når vi har definert en enum, kan vi opprette forekomster av hver av variantene. Et eksempel er som vist:

fnMain ()
La P = lade :: positiv;
La n = lade :: negativ;

Bruke enums med strukturer

En måte å utvide en enum på er å kombinere den med en struktur. Tenk på eksempelkoden nedenfor:

strukturelement
Navn: Streng,
Verdi: I32,
Lading: Lading,

Når vi har en struktur, kan vi lage en forekomst av strukturen og passere egenskapene til enum som vist i eksemplet nedenfor:

enum ladning
Negativ,
Positivt

strukturelement
Navn: Streng,
Verdi: I32,
Lading: Lading,

fn main ()
La elem1 = element
Navn: "Natrium".to_string (),
Verdi: 1,
Lading: Lading :: positivt
;
La elem2 = element
Navn: "Klorid".to_string (),
Verdi: 1,
Lading: Lading :: Negativ
;

I eksempelkoden ovenfor definerer vi to forekomster av elementstrukturen. Vi passerer deretter gebyregenskapen som en verdi fra Charge Enum.

Rust utleder egenskap

Hvis du prøver å skrive ut forekomstene av strukturen over, vil kompilatoren returnere en feil. For å trykke strukturen, må vi "importere" feilsøkingens trekk.

Dette gjøres ved å bruke den derive attributtet. Dette lar oss få forskjellige trekkimplementeringer som:

  1. Debug Trait
  2. Eq, Partialeq, Ord, Partialord
  3. Hashegenskap,
  4. Standard trekk
  5. Etc.

Syntaksen for å utlede en egenskap er som vist:

#[DEEN (TRAIT_NAME)]

Siden vi trenger å trykke strukturen til konsollen, kan vi utlede feilsøkegenskapen som vist:

#[DEEN (DEBUG)]
enumcharge
Negativ,
Positivt

#[DEEN (DEBUG)]
strukturelement
Navn: Streng,
Verdi: I32,
Lading: Lading,

Vi kan deretter bruke denne egenskapen til å trykke strukturen til konsollen som:

Println!(":#? ", Elem1);

Dette skal trykke strukturen til konsollen som:

Du kan sjekke utledede dokumentasjon i ressursen som er gitt nedenfor:

https: // doc.Rust-Lang.org/referanse/attributter/utlede.html

Konklusjon

I denne artikkelen utforsket vi hvordan vi skal lage, bruke og jobbe med enumtyper i rust. Vi dekket også hvordan vi bruker enums med strukturer og hvordan du kan utlede egenskaper.

Takk for at du leste!!