当前位置:  开发笔记 > 编程语言 > 正文

是否可以在特征实现中使用变量本地变量?

如何解决《是否可以在特征实现中使用变量本地变量?》经验,为你挑选了1个好方法。

我有一个我想要迭代的可索引类型.它由一些元数据和一个数组组成.我需要首先迭代元数据的字节,然后迭代到数组的字节.根据我的理解,迭代器不能在trait实现的本地存储.我认为这非常混乱,我不希望我的数据类型因满足无关的影响而变得混乱.

impl Iterator for IndexableData {
  type Item = u8
  let index : isize = 0;
  fn next(& mut self) -> Option {
     if self.index > self.len() { None }
     if self.index > size_of:: {
       Some (self.data[index - size_of::])
     } 
     Some (self.metadata[index])
  }
}

这就是我认为实现应该是这样的.的index变量属于迭代器性状.不是我的IndexableData类型.我怎样才能做到这一点?



1> 小智..:

Iterator应该是一个独立的结构,其具有到集合再加上它可能需要的任何其它数据(诸如此指数)的引用.集合对象本身应该是迭代器.这不仅需要在集合中放置错误的附加元数据,还会阻止您在集合上拥有多个独立的迭代器.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有