如何循环每秒数

问题描述 投票:3回答:3

阅读的文档,我注意到了一句说:“锈不具备循环一个C风格”。所以,我想,我怎样才能使一个循环相当于for(i = 0; i < 10; i += 2) { }

我能想到的办法是这样的:

for i in 0..10 {
    if i % 2 == 0 {
        //Do stuff
    }
}

甚至:

let i = 0;
loop {
    if i < 10 {
        //Do stuff
        i += 2;
    } else {
        break;
    }
}

但我不知道这是最好的方式,特别是因为它真的很冗长。有没有更好的办法?我猜这将是迭代器,但我不知道我怎么会做到这一点。

loops rust
3个回答
3
投票

std::iter::range_step的权利,但它被标记为消息“可能被范围标识和适配器来替换”不稳定。

fn main() {
    for i in std::iter::range_step(0, 10, 2) {
        println!("{:?}", i);
    }
}

版画

0
2
4
6
8

4
投票

这是目前在性病中实现与step_by function

for i in (0..10).step_by(2) {
    // Do stuff
}

3
投票

在qazxsw POI提供你想要的任意迭代器。所述qazxsw POI创建跳过每次迭代之后itertools crate元件的迭代器。

step function
© www.soinside.com 2019 - 2024. All rights reserved.