PR3-Rust-SS26/E-enums/02_option.rs

22 lines
631 B
Rust

// Option<T> ersetzt null/nil. Der Compiler erzwingt, dass ihr den "nichts da"-Fall behandelt.
fn teile(a: f64, b: f64) -> Option<f64> {
if b == 0.0 {
None // Kein Ergebnis möglich
} else {
Some(a / b) // Ergebnis einpacken
}
}
fn main() {
let versuche = vec![(10.0, 3.0), (5.0, 0.0), (42.0, 7.0)];
for (a, b) in versuche {
// Ohne diesen match kompiliert der Code nicht ihr MÜSST den None-Fall behandeln.
match teile(a, b) {
Some(ergebnis) => println!("{a} / {b} = {ergebnis:.2}"),
None => println!("{a} / {b} = nicht möglich!"),
}
}
}