Rust omija się

Rust omija się
W tym artykule dowiemy się o wyliczeniach lub wyliczamy w skrócie. Enums pozwalają nam zdefiniować niestandardowy typ składający się z wariantów. Są ściśle podobne do struktury, a każda prawidłowa struktura jest ważnym enumem.

Rust deklaruje enum

Możemy zdefiniować enum w rdzy za pomocą słowa kluczowego enum, a następnie nazwa enum. Następnie tworzymy ciało enum wewnątrz pary kręconych aparatów ortodontycznych.

Ciało enum składa się z możliwych wariantów oddzielonych przecinkami.

Składnia jest jak pokazana:

enumenum_name
wariant(),
wariant2
wariant3

Rdza zaleca stosowanie wielkich wariantów nazewnictwa.

Weźmy przypadek, w którym wyliczenia mogą być przydatne. Przykładem, który przychodzi na myśl, to rodzaje ładunku. Istnieją dwa rodzaje ładunku:

  1. Negatywny
  2. Pozytywny

Ponieważ w danym momencie może istnieć tylko jeden rodzaj ładunku, sensowne jest użycie enum. Przykładem jest to, jak pokazano poniżej:

enumbel
Negatywny,
Pozytywny

Rdza inicjalizacji enum

Po zdefiniowaniu wyliczenia możemy tworzyć instancje każdego z wariantów. Przykładem jest jak pokazano:

fnmain ()
Niech p = ładuj :: pozytywne;
Niech n = ładuj :: negatywne;

Używanie wyliczania ze strukturami

Jednym ze sposobów rozszerzenia enum jest połączenie go ze struct. Rozważ przykładowy kod poniżej:

Structulement
Nazwa: ciąg,
Wartość: i32,
Opłata: opłata,

Po uzyskaniu struktury możemy utworzyć instancję struktury i przekazać właściwości enum, jak pokazano w poniższym przykładzie:

enum ładuj
Negatywny,
Pozytywny

element struct
Nazwa: ciąg,
Wartość: i32,
Opłata: opłata,

fn main ()
Niech Elem1 = element
Nazwa: „Sód”.to_string (),
Wartość: 1,
Charge: Charge :: pozytywny
;
Niech Elem2 = element
Nazwa: „Chlorek”.to_string (),
Wartość: 1,
Ładunek: ładunek :: negatywny
;

W powyższym przykładowym kodzie definiujemy dwa instancje struktury elementu. Następnie przekazujemy właściwość ładowania jako wartość z wyliczania opłat.

Rdza wypierają cechę

Jeśli spróbujesz wydrukować instancje struktury powyżej, kompilator zwróci błąd. Aby wydrukować strukturę, musimy „zaimportować” cechę debugowania.

Odbywa się to przy użyciu atrybutu Derave. To pozwala nam uzyskać różne implementacje cech, takie jak:

  1. Cecha debugowania
  2. Eq, parialeq, ord, parialord
  3. Cecha haszu,
  4. Domyślna cecha
  5. Itp.

Składnia do uzyskania cechy jest jak pokazano:

#[DEIVE (TRAIT_NAME)]

Ponieważ musimy wydrukować strukturę na konsolę, możemy wyprowadzić cechę debugowania, jak pokazano:

#[Doni (debug)]
enumbel
Negatywny,
Pozytywny

#[Doni (debug)]
Structulement
Nazwa: ciąg,
Wartość: i32,
Opłata: opłata,

Następnie możemy użyć tej cechy do wydrukowania struktury do konsoli jako:

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

To powinno wydrukować strukturę na konsolę jako:

Możesz sprawdzić dokumentację DEIVE w zasadzie podanym poniżej:

https: // doc.Rust-Lang.org/reference/atrybuty/wyprowadzić.html

Wniosek

W tym artykule zbadaliśmy, jak tworzyć, korzystać i pracować z typami enum w rdzy. Omówiliśmy również, jak używać wyliczeń ze strukturami i jak wyprowadzać cechy.

Dziękuje za przeczytanie!!