Should .cloned() be before or after .filter()
问题 Let's say that I have vector and I want just keep the even elements. I would need to used cloned() and filter() . For example: fn main() { let my_vec: Vec<i32> = vec![1,2,3,4]; let my_vec_1: Vec<i32> = my_vec.iter().cloned().filter(|&x| x % 2 == 0).collect(); println!("{:?}", my_vec_1); let my_vec_2: Vec<i32> = my_vec.iter().filter(|&x| x % 2 == 0).cloned().collect(); println!("{:?}", my_vec_2); } Both approaches work. Using cloned() after filter() seems a little bit more efficient. Because