rust / beginner
Snippet
Basic Iterator Operations
Iterators provide a powerful way to process sequences of data. The iterator protocol consists of the next() method returning Option<&T>. Common methods like sum(), filter(), find(), and enumerate() build on this protocol. Iterators are lazy—they don't do work until consumed by a method like collect().
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 main() {let numbers = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];// sum - calculate totallet total: i32 = numbers.iter().sum();println!("Sum: {}", total);// filter - keep only matching elementslet evens: Vec<&i32> = numbers.iter().filter(|x| *x % 2 == 0).collect();println!("Evens: {:?}", evens);// find - get first matching elementlet first_big = numbers.iter().find(|&&x| x > 5);if let Some(val) = first_big {println!("First value > 5: {}", val);}// enumerate - get index and valuefor (index, value) in numbers.iter().enumerate() {println!("Index {}: {}", index, value);}}
Breakdown
1
numbers.iter().sum()
Consumes iterator and returns sum of all elements
2
.filter(|x| *x % 2 == 0)
Keeps only elements where the closure returns true
3
.find(|&&x| x > 5)
Returns first element matching predicate as Option
4
.enumerate()
Yields tuples of (index, value) pairs