PR3-Rust-SS26/E-enums/01_enums_mit_daten.rs

26 lines
739 B
Rust

// Jede Variante kann unterschiedliche Daten tragen.
enum Tier {
Hund(String), // Tupel-Variante: Name
Fisch { art: String, liter: u32 }, // Struct-Variante: benannte Felder
Stein, // Keine Daten
}
fn main() {
let haustiere = vec![
Tier::Hund("Bello".into()),
Tier::Fisch {
art: "Goldfisch".into(),
liter: 60,
},
Tier::Stein,
];
for tier in &haustiere {
match tier {
Tier::Hund(name) => println!("{name} will Gassi gehen"),
Tier::Fisch { art, liter } => println!("{art} braucht {liter}L Aquarium"),
Tier::Stein => println!("...braucht nichts."),
}
}
}