rust / beginner
Snippet
Using Closures with Iterators
Closures are anonymous functions that capture their environment. Combined with iterators, they enable powerful functional programming patterns. The filter method uses a closure to decide which elements to keep, while map transforms each element.
snippet.rs
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);}
Breakdown
1
.iter()
Creates an iterator that borrows vector elements
2
.filter(|&&x| x % 2 == 0)
Closure keeps only even numbers, &&x needed to dereference the reference
3
.map(|x| x * 2)
Closure multiplies each value by 2
4
.collect()
Transforms iterator back into a collection