Rostummen

Rostummen
In diesem Artikel erfahren wir kurz etwas über Aufzählungen oder kurze Aufenthalte. Mit Aufzügen können wir einen benutzerdefinierten Typ definieren, der aus Varianten besteht. Sie sind einer Struktur eng ähnlich und jede gültige Struktur ist eine gültige Aufzählung.

Rost Declare Enum

Wir können einen Enum in Rost mit dem Schlüsselwort Enum definieren, gefolgt vom Namen des Enum. Wir erzeugen dann den Auflaufkörper in einem Paar lockiger Zahnspangen.

Der Auflaufkörper besteht aus möglichen Varianten, die durch Kommas getrennt sind.

Die Syntax ist wie gezeigt:

enumenum_name
Variante(),
Variante2
Variante3

Der Rost empfiehlt die Verwendung von Uppercamelcasing zur Benennung von Enum -Varianten.

Lassen Sie uns einen Fall nehmen, in dem Enums nützlich sein können. Ein Beispiel, das mir in den Sinn kommt, sind Arten von Gebühren. Es gibt zwei Arten von Gebühren:

  1. Negativ
  2. Positiv

Da es zu einem bestimmten Zeitpunkt nur eine Art von Ladung geben kann, ist es sinnvoll, einen Enum zu verwenden. Ein Beispiel ist wie unten gezeigt:

enumcharge
Negativ,
Positiv

Rost initialisieren Enum

Sobald wir eine Aufzählung definiert haben, können wir Instanzen jeder der Varianten erstellen. Ein Beispiel ist wie gezeigt:

fnmain ()
lass P = Ladung :: positiv;
lass n = ladung :: negativ;

Verwenden von Enums mit Strukturen

Eine Möglichkeit, eine Aufzählung zu erweitern, besteht darin, ihn mit einer Struktur zu kombinieren. Betrachten Sie den folgenden Beispielcode:

Struktur
Name: Zeichenfolge,
Wert: i32,
Gebühr: Gebühr,

Sobald wir eine Struktur haben, können wir eine Instanz der Struktur erstellen und die Eigenschaften des Enum übergeben, wie im folgenden Beispiel gezeigt:

Aufwand
Negativ,
Positiv

Strukturelement
Name: Zeichenfolge,
Wert: i32,
Gebühr: Gebühr,

fn main ()
lass Elem1 = Element
Name: "Natrium".to_string (),
Wert: 1,
Gebühr: Gebühr :: positiv
;
lass Elem2 = Element
Name: "Chlorid".to_string (),
Wert: 1,
Ladung: Ladung :: negativ
;

Im obigen Beispielcode definieren wir zwei Instanzen der Elementstruction. Wir geben dann die Ladungseigenschaft als Wert aus der Ladungsgebühr bestehen.

Rost ableiten Merkmal

Wenn Sie versuchen, die Instanzen der obigen Struktur zu drucken, gibt der Compiler einen Fehler zurück. Um die Struktur zu drucken, müssen wir das Debug -Merkmal „importieren“.

Dies geschieht mit dem Ableitungsattribut. Auf diese Weise können wir verschiedene Merkmale implementiert, wie z. B.:

  1. Debugug Merkmal
  2. EQ, Partialeq, Ord, Partialord
  3. Hash -Merkmal,
  4. Standardmerkmal
  5. Usw.

Die Syntax, um ein Merkmal abzuleiten, ist wie gezeigt:

#[Derive (MASTRAID_NAME)]

Da wir die Struktur in die Konsole ausdrucken müssen, können wir das Debug -Merkmal wie gezeigt ableiten:

#[Abgeben (Debug)]
enumcharge
Negativ,
Positiv

#[Abgeben (Debug)]
Struktur
Name: Zeichenfolge,
Wert: i32,
Gebühr: Gebühr,

Wir können dieses Merkmal dann verwenden, um die Struktur in die Konsole zu drucken wie:

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

Dies sollte die Struktur in die Konsole drucken als:

Sie können die Ableitungsdokumentation in der unten angegebenen Ressource überprüfen:

https: // doc.Rost-Lang.org/referenz/Attribute/ableiten.html

Abschluss

In diesem Artikel haben wir untersucht. Wir haben auch abgedeckt, wie Sie Enums mit Strukturen verwenden und wie man Eigenschaften ableitet.

Danke fürs Lesen!!