Avatar ·

كيفية التكرار عبر نطاق من الأرقام بخطوة غير قياسية في 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`". لقد بحثت في Google ووجدت أن `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`، لكن