如何使用Rust';s std::iter::iterate方法

如何使用Rust';s std::iter::iterate方法,rust,Rust,iter包有一个迭代方法,但我找不到一个如何在任何地方使用它的例子。理想情况下,我想看看如何返回std::iter::iterate as iterator的结果,例如,ruby中的这个返回整数的方法: def whole_numbers() iterate(0) do |current| current + 1 end end iterate(…)返回迭代器本身,然后可以直接使用它,如下所示: let mut it = std::iter::iterate(0

iter包有一个迭代方法,但我找不到一个如何在任何地方使用它的例子。理想情况下,我想看看如何返回std::iter::iterate as iterator的结果,例如,ruby中的这个返回整数的方法:

def whole_numbers()
    iterate(0) do |current|
        current + 1
    end
end
iterate(…)
返回迭代器本身,然后可以直接使用它,如下所示:

let mut it = std::iter::iterate(0u, |x| x+1);

for i in it {
    println!("{}", i);
}
如果需要传递此迭代器,只需模拟
iterate()
的返回类型,即:

pub fn iterate<'a, T: Clone>(seed: T, f: |T|: 'a -> T) -> Iterate<'a, T>
pub fn iterate T)->iterate{
返回迭代(0u,| x | x+1);
}

谢谢!我遇到的问题是,我想返回迭代器,但我不确定类型签名应该是什么。
use std::iter::{Iterate, iterate};

pub fn create_counter() -> Iterate<'static, uint> {
    return iterate(0u, |x| x+1);
}