【发布时间】:2015-11-15 16:25:39
【问题描述】:
我正在为几个结构实现Iterator 特征并遇到了一些问题。为什么为Rows 实施Iterator 会显示错误?
这是一个链接:link to playground
基本上为什么这不起作用?
struct Stripe<'a> {
cells: &'a [u32],
}
struct Rows<'a> {
foo: &'a Foo,
vec: Vec<u32>,
first: bool,
}
impl<'a> std::iter::Iterator for Rows<'a> {
type Item = Stripe<'a>;
fn next(&mut self) -> Option<Stripe<'a>> {
if self.first {
self.first = false;
Some(
Stripe {
cells: &self.vec[0..1],
}
)
} else {
None
}
}
}
【问题讨论】:
-
好的,谢谢,我试试
-
并确保您的代码是MCVE。您应该能够删除与您的问题不直接相关的所有绒毛。
-
所以我重用了我的代码,这样可读性够吗?
-
几乎,
Foo类型和字段与此问题无关,是 imo 混淆的根源