给出对u32数组的引用,过滤出数字0(但实际上可以是任何数字,或任何其他规则/条件。)>
这里有一些可用的版本,但我觉得这可以更简单地完成:
fn test(factors: &[u32]) { let factors1 = factors .iter() .map(|&x| x as u32) .filter(|x| *x != 0) .collect::<Vec<u32>>(); let factors1 = factors .iter() .map(|&x| x as u32) .filter(|&x| x != 0) .collect::<Vec<u32>>(); let factors2 = factors .iter() .filter(|x| **x != 0) .collect::<Vec<&u32>>(); let factors3 = factors .iter() .filter(|&&x| x != 0) .collect::<Vec<&u32>>(); }
我期待这样的简单操作(无效):
let factors4 = factors.iter().filter(|x| x != 0).collect();
会有帮助的是:
给出对u32数组的引用,过滤出数字0(但可以是任何数字,实际上也可以是任何其他规则/条件)。这里有一些可行的版本,但我觉得可以做到...