如何在 Rust 中以非标准步长迭代数字范围?
大家好!我刚开始学习 Rust,遇到了一个在其他语言中看似简单但在这里让我困惑的问题。
我需要遍历从 0 到 100 的数字,但步长为 3,即:0, 3, 6, 9, ... 99。在 Python 中,我会写 `for i in range(0, 100, 3):` 就能工作。而在 Rust 中,我尝试标准的 `for i in 0..100` —— 这给出步长 1。如果我写 `for i in (0..100).step_by(3)`,编译器会报错:"no method named `step_by` found for struct `Range`"。
我搜索了一下,发现 `step_by` 存在,但不知为何对简单范围不起作用。我尝试导入一些 traits,但无济于事。我当前的代码如下:
```rust
fn main() {
for i in 0..100 {
println!("{}", i); // 这是步长 1,但我需要步长 3
}
// 尝试使用步长 3:
// for i in (0..100).step_by(3) {
// println!("{}", i);
// }
}
```
我阅读了文档,看到 `step_by` 属于 `Iterator`,但