rust / beginner
Snippet
Grundlegende Enum-Definition
Enums definieren Typen mit festen Varianten. Varianten können unit-ähnlich, tupel-ähnlich (mit Daten) oder struct-ähnlich sein. Der 'match'-Ausdruck behandelt alle Enum-Varianten erschöpfend. 'if let' bietet eine prägnante Möglichkeit, einzelne Muster zu vergleichen.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
enum Direction {North,South,East,West,}enum Status {Active(u32),Inactive,Suspended { reason: String },}fn main() {let heading = Direction::North;match heading {Direction::North => println!("Heading north"),Direction::South => println!("Heading south"),Direction::East => println!("Heading east"),Direction::West => println!("Heading west"),}let current = Status::Active(42);if let Status::Active(credits) = current {println!("Active with {} credits", credits);}}
Erklärung
1
enum Direction { North, South, East, West }
Einfaches Enum mit Unit-Varianten
2
enum Status { Active(u32), Inactive, Suspended { reason: String } }
Enum mit Tupel- und Struct-Varianten
3
Direction::North
Auf Variable zugreifen mit :: Pfadtrennzeichen
4
if let Status::Active(credits) = current
Mustervergleich einzelner Variante ohne Erschöpfung