【发布时间】:2016-04-04 13:00:03
【问题描述】:
我有一个要迭代的可索引类型。它由一些元数据和一个数组组成。我需要先遍历元数据的字节,然后遍历数组的字节。据我了解,迭代器不能在 trait 实现中拥有任何本地存储。我认为这是非常杂乱无章的,我不希望我的数据类型被满足外来影响的需要所混淆。
impl Iterator for IndexableData {
type Item = u8
let index : isize = 0;
fn next(& mut self) -> Option<Item> {
if self.index > self.len() { None }
if self.index > size_of::<Metadata> {
Some (self.data[index - size_of::<Metadata>])
}
Some (self.metadata[index])
}
}
这就是我认为实现的样子。 index 变量 属于 在迭代器特征中。不是我的IndexableData 类型。我怎样才能做到这一点?
【问题讨论】:
-
你的问题和这个很相似:stackoverflow.com/questions/30218886/….
-
啊,我不知道那个问题。我在搜索我想到的东西时没有找到它。
-
您应该知道找到该问题的解决方案 :)
-
Rust 的生命周期语言记录不充分,类型参数化语言也很不稳定。就我而言,我拥有所有这些 impl
标签: rust