rust / beginner
Snippet
Arbeiten mit Option<T> für optionale Werte
Option<T> ist Rusts Weg, mit Werten umzugehen, die existieren könnten oder auch nicht, und eliminiert Null-Zeiger-Ausnahmen. Anstatt null zurückzugeben, gibst du Some(wert) oder None zurück. Die if let Syntax entpackt den Wert nur, wenn er existiert, was den Code lesbar und sicher macht. Die unwrap_or Methode liefert einen Standardwert, wenn None auftritt.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
fn find_user(id: u32) -> Option<String> {if id == 1 {Some(String::from("Alice"))} else {None}}fn main() {let user = find_user(1);// Using if let to extract the valueif let Some(name) = user {println!("Found user: {}", name);} else {println!("User not found");}// Using unwrap_or for default valuelet another_user = find_user(999).unwrap_or(String::from("Guest"));println!("Another user: {}", another_user);}
Erklärung
1
fn find_user(id: u32) -> Option<String> {
Funktion gibt Option<String> statt einer einfachen String zurück
2
Some(String::from("Alice"))
Gibt Some mit einem Wert zurück, wenn Benutzer gefunden wird
3
None
Gibt None zurück, wenn Benutzer nicht existiert
4
if let Some(name) = user {
Entpackt Wert aus Option nur, wenn es Some ist