对于未定义大小的
Vec<u32>
,对它们调用按位(与、或异或等)运算符并返回结果数据的 Rust 方法是什么?
我知道用一个简单的循环是可能的,我正在寻找的是Rust way™。
您可以使用
Iterator::fold
。例如,按位或,|
:
pub fn main() {
let a = vec![1, 2, 4, 8];
let sum = a.iter().fold(0, |acc, x| acc | x);
assert_eq!(sum, 15);
}
(示例取自 https://doc.rust-lang.org/std/iter/trait.Iterator.html#examples-38 并进行调整。)