2 个不稳定版本
使用旧的 Rust 2015
0.2.0 | 2017年7月23日 |
---|---|
0.1.0 | 2017年7月18日 |
#8 在 #stacked
9KB
145 行
duck
它是一只看鸭子... 理解了吗?
lib.rs
:
该包公开了一个 .peeking()
方法,用于在不消耗的情况下查看迭代器中的下一个元素。
与标准库中的 peekable
方法不同,peeking
可以被 堆叠。这意味着链式调用多个 peeking
将会增加 peek
返回的元素数量。
请注意,该库会 .clone()
被查看的元素。虽然这不是绝对必要的,但它确实使实现更容易理解,特别是在当前 Rust 缺乏 泛型关联类型 的情况下。
示例
let anatids = vec!["duck", "goose", "swan"];
// Since .peeking() is called twice, this iterator will peek two elements ahead
let mut iter = anatids.into_iter().peeking().peeking();
assert_eq!(iter.peek(), Some(("duck", Some("goose"))));
// Step the iterator twice
iter.next(); iter.next();
// Now we're at "swan", which has no elements after it
assert_eq!(iter.peek(), Some(("swan", None)));