Avatar ·

如何在 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` 不是集合而是迭代器,但如何实现步长呢? 也许需要转换范围?或者编写自定义函数?请指教,谢谢!