Template attempt to match a tuple inside a map:
fn main() { let z = vec![(1, 2), (3, 4)]; let sums = z.iter().map(|(a, b)| a + b); println!("{:?}", sums); }
causes an error
error[E0308]: mismatched types --> src/main.rs:3:30 | 3 | let sums = z.iter().map(|(a, b)| a + b); | ^^^^^^ expected reference, found tuple | = note: expected type `&({integer}, {integer})` found type `(_, _)`
This syntax can be used in some varied form, or I have to write:
fn main() { let z = vec![(1, 2), (3, 4)]; let sums = z.iter() .map(|pair| { let (a, b) = *pair; a + b }) .collect::<Vec<_>>(); println!("{:?}", sums); }
source share