在下面的代码,我得到了相同的结果我是否使用len
或count
:
fn main() {
let vector = [0, 1, 2];
assert_eq!(vector.iter().count(), vector.iter().len());
}
Run Code Online (Sandbox Code Playgroud)
len
似乎更通用,因为我也可以这样做:
assert_eq!(vector.len(), 3);
Run Code Online (Sandbox Code Playgroud)
那么,两者之间有什么区别...为什么要使用一个而不是另一个?
返回向量中的元素数.
返回迭代器的确切长度.
计算此迭代器中的元素数.
因此,虽然它们返回相同的值,但count
实际上会计算元素.请注意,len
仅适用于ExactSizeIterator; 因此,如果该值是惰性检索的,则可能无法获得总长度,您需要对其进行显式计数.