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_nameRusten 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:
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:
enumchargeRust initialiserer enum
Når vi har definert en enum, kan vi opprette forekomster av hver av variantene. Et eksempel er som vist:
fnMain ()Bruke enums med strukturer
En måte å utvide en enum på er å kombinere den med en struktur. Tenk på eksempelkoden nedenfor:
strukturelementNår vi har en struktur, kan vi lage en forekomst av strukturen og passere egenskapene til enum som vist i eksemplet nedenfor:
enum ladningI 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:
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)]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!!