以下是代码:
令人惊讶的是,当
查看
fn main() {
{
let a: Vec<i32> = vec![1, 2, 3, 4];
print!("{}\n", a.into_iter().all(|x| x > 1));
}
{
let a: Vec<i32> = vec![];
print!("{}\n", a.into_iter().all(|x| x > 1));
}
}
输出结果
false
true
令人惊讶的是,当
a
为空时,a.into_iter().all(|x| x > 1)
返回true
。查看
Iterator::all
的文档,我发现明确指出:
为什么要选择这种方式呢?空迭代器返回true。