0.2.0 |
|
---|---|
0.1.0 |
|
在#non-zero中排名第17
5KB
CountNonZero
概述
CountNonZeroExt crate为Rust的标准Iterator
特质提供了扩展特质,允许在迭代器中计数非零元素,并返回一个Option<NonZeroUsize>
。此方法与Rust的类型系统完美集成,在编译时提供保证,确保结果(如果存在)确实是非零的。在区分零和非零计数至关重要的情况下,此功能特别有用,可以通过利用NonZeroUsize类型优化内存布局和条件逻辑的能力来提高代码效率。
特性
将Iterator
特质扩展为包含count_non_zero
方法。该方法会计算迭代器生成的元素数量,返回一个Option<NonZeroUsize>
。
使用方法
use std::num::NonZeroUsize;
use count_non_zero_ext::CountNonZeroExt;
fn main() {
let data = vec![1, 2, 0, 4];
let count = data.into_iter().filter(|el| el % 2 == 0).count_non_zero();
match count {
Some(non_zero_count) => println!("Non-zero count of elements: {}", non_zero_count),
None => println!("Iterator is empty"),
}
}