rust / beginner
Snippet
Enums mit Daten definieren und verwenden
Enums in Rust ermöglichen es dir, Typen mit einer festen Anzahl von Varianten zu definieren. Jede Variante kann optional Daten enthalten — wie einfache Konstanten oder Structs mit Feldern. Dies macht Enums mächtig für das Modellieren von Zuständen, die verschiedene Formen haben. In Kombination mit match kannst du jede mögliche Variante erschöpfend behandeln.
snippet.rs
1
enum Direction {\n North,\n South,\n East,\n West,\n Move { x: i32, y: i32 },\n}\n\nfn describe(dir: Direction) -> &'static str {\n match dir {\n Direction::North => "Heading north",\n Direction::South => "Heading south",\n Direction::East => "Heading east",\n Direction::West => "Heading west",\n Direction::Move { x, y } => "Moving to",\n }\n}\n\nfn main() {\n let heading = Direction::North;\n let movement = Direction::Move { x: 10, y: 20 };\n \n println!("{} and {}", describe(heading), describe(movement));\n}
Erklärung
1
enum Direction {
Deklariert einen neuen Enum-Typen namens Direction
2
North, South, East, West,
Einfache Enum-Varianten ohne zugehörige Daten
3
Move { x: i32, y: i32 },
Variante mit struct-ähnlichen Datenfeldern innerhalb des Enums
4
fn describe(dir: Direction) -> &'static str {
Funktion, die eine Direction entgegennimmt und einen String-Slice zurückgibt
5
Direction::Move { x, y } => "Moving to",
Musterabgleich bindet Variablen aus der Move-Variante
6
let heading = Direction::North;
Erstellt eine Instanz mit der :: Syntax zum Namespacing der Variante