rust / beginner
Snippet
Arbeiten mit Option<T>
Option<T> ist Rusts sichere Alternative zu null. Es hat zwei Varianten: Some(value) wenn ein Wert existiert, oder None wenn keiner existiert. Dies zwingt dich, den Fall der Abwesenheit explizit zu behandeln und verhindert Null-Zeiger-Fehler.
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_element(arr: &[i32], target: i32) -> Option<usize> {for (i, &item) in arr.iter().enumerate() {if item == target {return Some(i);}}None}fn main() {let nums = [1, 3, 5, 7];match find_element(&nums, 5) {Some(idx) => println!("Found at index {}", idx),None => println!("Not found"),}if let Some(idx) = find_element(&nums, 2) {println!("Found at {}", idx);}}
Erklärung
1
fn find_element(arr: &[i32], target: i32) -> Option<usize>
Funktion gibt Option<usize> zurück, die entweder Some(index) oder None ist
2
return Some(i);
Gibt Some(index) zurück, eingewickelt in das Option-Enum
3
None => println!("Not found")
Behandelt den Fall, in dem das Element nicht gefunden wurde
4
if let Some(idx) = find_element(&nums, 2)
Kompaktes Pattern-Matching, wenn uns nur der Some-Fall interessiert