0Pricing
Learn Rust Coding · Lektion

Ihr erstes Enum definieren

Erstellen Sie einfache Aufzählungstypen.

Ihr erstes Enum definieren ist eine kostenlose Learn Rust Coding-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn Rust Coding-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn Rust Coding-Kurs umfasst insgesamt 4 Lektionen.

What Is an Enum?

Ein Enum (Enumeration/Aufzählung) ermöglicht es Ihnen, einen Typ zu definieren, indem Sie dessen mögliche Werte auflisten, die als Varianten bezeichnet werden. Ein Wert dieses Typs kann immer nur eine dieser Varianten annehmen.

Enums glänzen immer dann, wenn etwas eine feste Menge an Zuständen hat, wie zum Beispiel die Himmelsrichtungen oder die Farben in einem Kartenspiel.

enum Direction {
    North,
    South,
    East,
    West,
}

Ein Enum deklarieren

Sie deklarieren ein Enum mit dem Schlüsselwort enum, einem Namen und einer durch Kommas getrennten Liste von Varianten in geschweiften Klammern.

Üblicherweise verwenden Enum-Namen PascalCase (wie Direction), ebenso die Variantennamen (wie North).

enum TrafficLight {
    Red,
    Yellow,
    Green,
}

Einen Enum-Wert erstellen

Um einen Wert zu erstellen, schreiben Sie den Enum-Namen, zwei Doppelpunkte :: und anschließend die Variante.

Zum Beispiel erstellt Direction::North einen Wert vom Typ Direction. :: zeigt Rust, zu welchem Enum die Variante gehört.

enum Direction {
    North,
    South,
    East,
    West,
}

fn main() {
    let heading = Direction::East;
    println!("Created a direction value!");
}

Enums sind Typen

Sobald es definiert ist, ist ein Enum ein echter Typ, genau wie i32 oder bool. Sie können seine Werte in Variablen speichern und an Funktionen übergeben.

Eine Funktion, die ein Direction entgegennimmt, akzeptiert jede seiner Varianten, aber nichts anderes.

enum Direction {
    North,
    South,
}

fn describe(d: Direction) {
    println!("Got a direction");
}

fn main() {
    describe(Direction::North);
}

Warum nicht einfach Zahlen verwenden?

Sie könnten eine Ampel mit 0, 1 und 2 darstellen, aber nichts hindert Sie daran, versehentlich 7 zu verwenden.

Ein Enum macht ungültige Zustände unmöglich: Der Compiler garantiert, dass der Wert immer eine der aufgelisteten Varianten ist. Das ist sicherer und deutlich leichter zu lesen.

Debug zum Ausgeben ableiten

Standardmäßig weiß Rust nicht, wie ein Enum ausgegeben werden kann. Wenn Sie oberhalb des Enums #[derive(Debug)] hinzufügen, können Sie es mit dem Formatierer {:?} ausgeben.

Das ist ideal für schnelles Debugging während des Lernens.

#[derive(Debug)]
enum Direction {
    North,
    South,
}

fn main() {
    let d = Direction::South;
    println!("{:?}", d);
}

Enum-Werte vergleichen

Fügen Sie #[derive(PartialEq)] hinzu, damit Sie Varianten mit == vergleichen können.

Das ist für einfache Prüfungen praktisch. Für umfangreicheres Verhalten ist der Ausdruck match (der bald behandelt wird) jedoch meist das bessere Werkzeug.

#[derive(PartialEq)]
enum Light {
    Red,
    Green,
}

fn main() {
    let l = Light::Red;
    if l == Light::Red {
        println!("Stop!");
    }
}

Beliebig viele Varianten

Ein Enum kann beliebig viele Varianten enthalten. Sie gehören alle zum selben Typ.

Wenn Sie zusammengehörige Zustände gemeinsam auflisten, bleibt Ihr Code übersichtlich und die möglichen Optionen sind sofort erkennbar.

enum Suit {
    Hearts,
    Diamonds,
    Clubs,
    Spades,
}

Enums in der Standardbibliothek

Rusts eigene Standardbibliothek verwendet überall Enums. Zwei bekannte Beispiele sind Option (ein möglicherweise vorhandener oder fehlender Wert) und Result (Erfolg oder Fehler).

Wenn Sie jetzt Enums lernen, können Sie diese grundlegenden Typen später leichter verstehen.

// Option is an enum in std:
// enum Option<T> {
//     Some(T),
//     None,
// }

Einfache Enums kopieren

Enums, deren Varianten keine Daten enthalten, können Clone und Copy ableiten. Dann werden Werte automatisch kopiert, statt verschoben zu werden.

Dadurch verhalten sich kleine Zustands-Enums wie einfache Werte, etwa Ganzzahlen.

#[derive(Clone, Copy)]
enum Coin {
    Heads,
    Tails,
}

fn main() {
    let a = Coin::Heads;
    let b = a; // a is still usable
}

Alles zusammenfügen

Hier ist ein vollständiges Programm: Definieren Sie ein Enum, erstellen Sie einen Wert und geben Sie ihn mit Debug aus.

Führen Sie es aus und ändern Sie Green in eine andere Variante, um zu sehen, wie sich die Ausgabe ändert.

#[derive(Debug)]
enum TrafficLight {
    Red,
    Yellow,
    Green,
}

fn main() {
    let current = TrafficLight::Green;
    println!("Light is {:?}", current);
}

Kurzer Check

Testen Sie Ihr Verständnis der Enum-Grundlagen.

Zusammenfassung

Sie haben gelernt, dass ein Enum einen Typ aus einer festen Liste von Varianten definiert, die mit dem Schlüsselwort enum deklariert werden.

Sie erstellen Werte mit EnumName::Variant. Außerdem können Sie Debug, PartialEq oder Copy ableiten, um sie auszugeben, zu vergleichen oder zu kopieren. Als Nächstes lernen Sie, mit match auf jede Variante zu reagieren.

Häufig gestellte Fragen

Ist die Lektion „Ihr erstes Enum definieren“ kostenlos?

Ja — der vollständige Text von „Ihr erstes Enum definieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn Rust Coding-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn Rust Coding-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Ihr erstes Enum definieren“?

Erstellen Sie einfache Aufzählungstypen. Du übst Learn Rust Coding mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Learn Rust Coding zu starten?

Keine Vorkenntnisse erforderlich. Learn Rust Coding auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Ihr erstes Enum definieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Learn Rust Coding-Lektion Code schreiben und ausführen?

Ja. Jede Learn Rust Coding-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Ihr erstes Enum definieren
  2. Auf Enum-Varianten matchen
  3. Enums mit Daten
  4. Match-Guards und Bindings
← Zurück zu Learn Rust Coding