【发布时间】:2020-07-03 08:30:17
【问题描述】:
我想将向量的每个元素与下一个元素进行比较。我找到了以下解决方案,但它不是那么可读。
struct Obj {
i: u32,
}
impl Obj {
fn is_valid_next(&self, next: &Obj) -> bool {
self.i + 1 == next.i
}
}
fn main() {
let data: Vec<Obj> = vec![Obj { i: 0 }, Obj { i: 2 }, Obj { i: 2 }];
let mut previous: Option<Obj> = None;
let mut is_valid = true;
for current in data.into_iter() {
match previous {
Some(p) => {
is_valid = p.is_valid_next(¤t);
if !is_valid {
break;
}
}
None => {}
}
previous = Some(current);
}
println!("is valid {}", is_valid);
}
【问题讨论】:
标签: rust