在下面的代码中,无论使用len
还是count
,我都会得到相同的结果:
fn main() {
let vector = [0, 1, 2];
assert_eq!(vector.iter().count(), vector.iter().len());
}
len
似乎更通用,因为我也可以这样做:
assert_eq!(vector.len(), 3);
那么,两者之间的区别是什么?为什么要使用一个而不是另一个?
答案 0 :(得分:7)
返回向量中的元素数。
返回迭代器的确切长度。
计算此迭代器中的元素数。
因此,当它们返回相同的值时,count
实际上会计算元素。请注意,len
仅适用于ExactSizeIterator;因此,如果该值是惰性检索的,则总长度可能不可用,您需要明确计算它。