rust / intermediate
Snippet
Option<T> für Null-Sicherheit
Rust kennt keine Null-Werte. Stattdessen repräsentiert Option<T> optionale Werte: Some(T) enthält einen Wert, None repräsentiert Abwesenheit. Dies macht Null-Zeiger-Ausnahmen zur Kompilierzeit unmöglich. Die if let-Syntax bietet bequemen Musterabgleich, während unwrap_or einen sicheren Standard-Fallback bietet.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
fn find_user(id: u32) -> Option<&'static str> {match id {1 => Some("Alice"),2 => Some("Bob"),_ => None,}}fn main() {let user = find_user(1);if let Some(name) = user {println!("Found: {}", name);} else {println!("User not found");}// Using unwrap_or for default valueslet missing = find_user(999).unwrap_or("Guest");println!("Missing user: {}", missing);}
Erklärung
1
fn find_user(id: u32) -> Option<&'static str>
Funktion gibt Option zurück — entweder Some(name) oder None
2
Some("Alice")
Verpackt Wert in Some-Variante von Option
3
_ => None
Platzhalter-Muster gibt None für nicht gematchte Fälle zurück
4
if let Some(name) = user { ... }
Bedingte Bindung extrahiert Wert nur wenn Some, ohne explizites match
5
.unwrap_or("Guest")
Gibt enthaltenen Wert oder Standardfall zurück wenn None