Consuming Iterators
Consumption runs the pipeline: for, collect, sum, count, fold, reduce, last, any, all.
Busca en todas las páginas de la documentación
Consumption runs the pipeline: for, collect, sum, count, fold, reduce, last, any, all.
fn main() {
let total: i32 = (1..=5).sum();
let evens: Vec<_> = (0..10).filter(|n| n % 2 == 0).collect();
println!("{total} {:?}", evens);
}When to reach for this: Final step after adapters - pick consumer matching output need.
fn stats(nums: impl IntoIterator<Item = f64>) -> (f64, f64) {
let mut count = 0u64;
let sum: f64 = nums.into_iter().inspect(|_| count += 1).sum();
(sum, sum / count as f64)
}
fn main() {
println!("{:?}", stats([1.0, 2.0, 3.0]));
}What this demonstrates:
sum consumerinspect side effect countingIntoIterator flexible inputcollect builds many types via FromIterator. fold is general reducer. for desugars to while let Some.
collect::<Vec<_>>().None. Fix: fold with seed.| Alternative | Use When | Don't Use When |
|---|---|---|
try_for_each | Fallible each step | Need collected vec |
| Manual loop | Break/continue complex | Simple sum |
fold | Single accumulator | Built-in sum works |
Stack versions: This page was written for Rust 1.97.0 (edition 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, and Polars 0.46+.
Revisado por Chris St. John·Última actualización: 16 jul 2026