1 个稳定版本

1.0.0 2021年1月22日

#1909Rust 模式


用于 informa

MIT/Apache

11KB
156

spans

此包允许您将迭代器分割为连续的区间。

导入 Spans 特性以扩展 Iterator

use spans::Spans;

现在您可以使用 Spans::spans_by_key 将迭代器分割为连续的区间

let vec = vec![1, 2, 5, 6, 7, 11, 13, 14, 15];
let mut spans = vec.iter().spans_by_key(|&&x| x, |a, b| a + 1 == b);

while let Some(span) = spans.next() {
    println!("span = {:?}", span.collect::<Vec<_>>());
}

上面的代码将向量分割成每个项目都比前一个项目大1的区间。以下文本将被打印出来

span = [1, 2]
span = [5, 6, 7]
span = [11]
span = [13, 14, 15]

非常感谢 Matt BrubeckRust 用户论坛 上慷慨地帮助我。


lib.rs:

此包允许您将迭代器分割为连续的区间。

导入 Spans 特性以扩展 Iterator

use spans::Spans;

现在您可以使用 spans_by_key 将迭代器分割为连续的区间

let vec = vec![1, 2, 5, 6, 7, 11, 13, 14, 15];
let mut spans = vec.iter().spans_by_key(|&&x| x, |a, b| a + 1 == b);

while let Some(span) = spans.next() {
    println!("span = {:?}", span.collect::<Vec<_>>());
}

上面的代码将向量分割成每个项目都比前一个项目大1的区间。以下文本将被打印出来

span = [1, 2]
span = [5, 6, 7]
span = [11]
span = [13, 14, 15]

有关更多信息,请参阅 spans_by_key 文档。

无运行时依赖