如何在 Rust 中以非标准步长迭代范围?
大家好!
我最近开始学习 Rust,遇到了一个看似简单但找不到优雅解决方案的问题。我需要遍历从 0 到 100 的数字,但不是连续遍历,而是以步长 5 进行。即:0, 5, 10, 15, ..., 100。
在 Python 中,我会写类似 `for i in range(0, 101, 5)` 的代码,一切正常。在 Rust 中,我知道 `for i in 0..=100`,但这会给出所有连续的数字。我尝试使用 `.step_by()`,但编译器报错说范围没有这个方法。后来我搜索到某个 `Step` trait,但它似乎不稳定或另有原因。
以下是我尝试的代码:
```rust
fn main() {
for i in 0..=100.step_by(5) {
println!("{}", i);
}
}
```
编译器报错:`no method named 'step_by' found for struct 'RangeInclusive'`。我明白 `RangeInclusive` 不是集合而是迭代器,但如何实现步长呢?
也许需要转换范围?或者编写自定义函数?请指教,谢谢!