rust / beginner
Snippet
Umgang mit optionalen Werten mit Option
Option<T> repräsentiert einen Wert, der existieren könnte oder auch nicht, und vermeidet Null-Referenzen. Some enthält einen Wert, None repräsentiert Abwesenheit. Die if let-Syntax bietet prägnantes Pattern Matching, während unwrap_or einen Standardwert liefert.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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);}let unknown = find_user(999);println!("User: {:?}", unknown.unwrap_or("Guest"));}
Erklärung
1
fn find_user(id: u32) -> Option<&'static str>
Gibt Some(name) oder None zurück, abhängig von der id
2
if let Some(name) = user
Führt den Block nur aus, wenn user Some ist, bindet Wert an name
3
unwrap_or("Guest")
Gibt den Wert in Some zurück, oder den Standardwert wenn None