Closures and Functional Patterns

Closures are anonymous functions you can store in variables or pass as arguments.

Example

let add = |a, b| a + b;
println!("{}", add(2, 3));

Closures can capture their environment:

let x = 5;
let print_x = || println!("x is {}", x);

You can use closures with iterators for functional programming:

let numbers = vec![1, 2, 3];
let doubled: Vec = numbers.iter().map(|x| x * 2).collect();
← PrevNext →