diff options
Diffstat (limited to 'exercises/collections/vec2.rs')
| -rw-r--r-- | exercises/collections/vec2.rs | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/exercises/collections/vec2.rs b/exercises/collections/vec2.rs index 6595e40..db37d1d 100644 --- a/exercises/collections/vec2.rs +++ b/exercises/collections/vec2.rs @@ -4,8 +4,7 @@ // // Make me pass the test! // -// Execute the command `rustlings hint vec2` if you need -// hints. +// Execute `rustlings hint vec2` or use the `hint` watch subcommand for a hint. // I AM NOT DONE @@ -13,12 +12,21 @@ fn vec_loop(mut v: Vec<i32>) -> Vec<i32> { for i in v.iter_mut() { // TODO: Fill this up so that each element in the Vec `v` is // multiplied by 2. + ??? } // At this point, `v` should be equal to [4, 8, 12, 16, 20]. v } +fn vec_map(v: &Vec<i32>) -> Vec<i32> { + v.iter().map(|num| { + // TODO: Do the same thing as above - but instead of mutating the + // Vec, you can just return the new number! + ??? + }).collect() +} + #[cfg(test)] mod tests { use super::*; @@ -30,4 +38,12 @@ mod tests { assert_eq!(ans, v.iter().map(|x| x * 2).collect::<Vec<i32>>()); } + + #[test] + fn test_vec_map() { + let v: Vec<i32> = (1..).filter(|x| x % 2 == 0).take(5).collect(); + let ans = vec_map(&v); + + assert_eq!(ans, v.iter().map(|x| x * 2).collect::<Vec<i32>>()); + } } |
