rust / intermediate
Snippet
Funktionale Iterator-Adapter
Iteratoren in Rust sind 'lazy' (träge) und mächtig. 'filter' und 'map' ermöglichen Datentransformationen im funktionalen Stil ohne unnötige Zwischenspeicherungen.
snippet.rs
1
2
3
4
5
let numbers = vec![1, 2, 3, 4, 5];let doubled_evens: Vec<i32> = numbers.iter().filter(|&x| x % 2 == 0).map(|x| x * 2).collect();
Erklärung
1
.filter(|&x| x % 2 == 0)
Behält nur die Elemente, die die Bedingung erfüllen (gerade Zahlen).
2
.collect()
Wandelt den Iterator zurück in eine Kollektion wie ein Vec um.