rust / beginner
Snippet
Closures: Anonymous Functions
Closures are anonymous functions you can store in variables or pass to functions. They capture their environment. In the example, filter and map use closures to process iterator elements concisely.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
fn main() {let add = |a: i32, b: i32| -> i32 { a + b };let result = add(5, 3);println!("5 + 3 = {}", result);let nums = vec![1, 2, 3, 4, 5];let evens: Vec<i32> = nums.iter().filter(|&&x| x % 2 == 0).map(|x| x * 2).collect();println!("Evens doubled: {:?}", evens);}
Breakdown
1
let add = |a: i32, b: i32| -> i32 { a + b };
Closure syntax: vertical bars for parameters, braces for body
2
.filter(|&&x| x % 2 == 0)
Filter closure borrows each element with |&x|, checks evenness
3
.map(|x| x * 2)
Map closure takes ownership of each element and doubles it
4
.collect();
Collects the iterator results back into a Vec<i32>