كيفية التكرار عبر نطاق بخطوة غير قياسية في 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()`، لكن المترجم اشتكى من عدم وجود هذه الطريقة للنطاقات. ثم بحثت عن trait `Step`، لكنه إما غير مستقر أو شيء من هذا القبيل.
هذا ما حاولت فعله:
```rust
fn main() {
for i in 0..=100.step_by(5) {
println!("{}", i);
}
}
```
المترجم يعطي خطأ: `no method named 'step_by' found for struct 'RangeInclusive'`. أفهم أن `RangeInclusive` ليست مجموعة، بل مكرر (iterator)، لكن كيف إذن يمكنني تعيين الخطوة؟
هل يجب تحويل النطاق بطريقة ما؟ أم كتابة دالة خاصة بي؟ أرجو الإفادة، من فضلكم.