capypad
0 Tage Serie
rust / beginner
Snippet

Verwendung von Closures mit Iteratoren

Closures sind anonyme Funktionen, die ihre Umgebung erfassen. In Kombination mit Iteratoren ermöglichen sie leistungsstarke funktionale Programmiermuster. Die filter-Methode verwendet eine Closure, um zu entscheiden, welche Elemente behalten werden, während map jedes Element transformiert.

snippet.rs
rust
1
2
3
4
5
6
7
8
9
10
11
fn main() {
let numbers = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let doubled: Vec<i32> = numbers
.iter()
.filter(|&&x| x % 2 == 0)
.map(|x| x * 2)
.collect();
println!("Even numbers doubled: {:?}", doubled);
}
Erklärung
1
.iter()
Erstellt einen Iterator, der Elemente des Vektors ausleiht
2
.filter(|&&x| x % 2 == 0)
Closure behält nur gerade Zahlen, &&x wird benötigt um die Referenz zu dereferenzieren
3
.map(|x| x * 2)
Closure multipliziert jeden Wert mit 2
4
.collect()
Transformiert den Iterator zurück in eine Sammlung