💡 1. if/else als Ausdrücke (Expressions)
In Rust ist fast alles ein Ausdruck, der einen Wert zurückgibt. Deshalb kann if direkt Variablen initialisieren – ganz ohne ternären ? : Operator:
let is_authenticated = true;
// if als Ausdruck: Beide Zweige müssen denselben Datentyp liefern!
let access_level = if is_authenticated { 2 } else { 0 };
println!("Zugriffsstufe: {}", access_level);
🔁 2. Die drei Schleifentypen in Rust
1. loop
Endlosschleife, kann mit break value; Werte zurückgeben!
2. while
Bedingte Schleife: läuft solange die Condition true ist.
3. for in
Sichere Iteration über Ranges 0..10 oder Collections.
// loop mit Rückgabewert:
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; // Liefert 20 zurück
}
};
🎯 3. Das mächtige match Pattern Matching
match in Rust ist weitaus mächtiger als klassische switch-Anweisungen in C++/Java. Es erzwingt Vollständigkeit (Exhaustiveness) und unterstützt Ranges, Destructuring und Match Guards:
let score = 85;
let grade = match score {
90..=100 => "A (Ausgezeichnet)",
80..=89 => "B (Sehr gut)",
70..=79 => "C (Befriedigend)",
0..=69 => "D (Nicht bestanden)",
_ => "Ungültiger Punktestand", // Catch-All Muster
};
Mit pattern if condition => ... kannst du zusätzliche boolesche Bedingungen an ein Muster anheften, z. B. (role, level) if level <= 3 => true.