Menu
CoddyTech

دليل النطاق (Range)

جزء من قسم الأساسيات في رحلة Rust على Coddy. الدرس 65 من 75.

في هذا الدرس، سنتعرّف أكثر على كيفية عمل النطاق.

صياغة النطاق الأساسية:

  • start..end - ينشئ نطاقًا من البداية إلى النهاية (غير شاملة)
  • start..=end - ينشئ نطاقًا من البداية إلى النهاية (شاملة)
  • ..end - ينشئ نطاقًا حتى end (غير شامل) من دون قيمة بداية. لا يمكن استخدامه في حلقة for، لكنه يصلح لتقطيع مصفوفة بدءًا من الفهرس 0: &arr[..3] هي أول 3 عناصر
  • ..=end - ينشئ نطاقًا حتى end (شاملًا) من دون قيمة بداية، ويُستخدم بالطريقة نفسها: &arr[..=3] هي أول 4 عناصر
  • start.. - ينشئ نطاقًا من start إلى ما لا نهاية
  • .. - ينشئ نطاقًا من سالب ما لا نهاية إلى موجب ما لا نهاية

اعكس النطاق باستخدام .rev():

  • (0..5).rev() - 4, 3, 2, 1, 0
  • (0..=5).rev() - 5, 4, 3, 2, 1, 0

القفز بخطوات باستخدام .step_by(n):

  • (0..10).step_by(2) - 0, 2, 4, 6, 8
  • (0..10).rev().step_by(2) - 9, 7, 5, 3, 1

على سبيل المثال:

// نطاق تصاعدي بسيط
for i in 0..5 { }
// القيم: 0, 1, 2, 3, 4
// نطاق شامل للطرفين
for i in 0..=5 { }
// القيم: 0, 1, 2, 3, 4, 5
// نطاق بترتيب عكسي
for i in (0..5).rev() { }
// القيم: 4, 3, 2, 1, 0
// التقدّم بخطوة مقدارها 2
for i in (0..10).step_by(2) { }
// القيم: 0, 2, 4, 6, 8
// اجمع بين العكس والخطوة
for i in (0..10).rev().step_by(3) { }
// القيم: 9, 6, 3, 0
challenge icon

التحدي

سهل

لديك مصفوفتان، numbers1 وnumbers2. اطبع سطرًا لكل منهما:

  • المصفوفة 1: ابدأ من الموضع الأخير في numbers1 وتحرك إلى الخلف بمقدار 3 مواضع في كل مرة (الفهارس 25، 22، 19، ...)، واطبع القيمة في كل موضع.
  • المصفوفة 2: مرّ على numbers2 من العنصر الأخير إلى الأول، واطبع القيم القابلة للقسمة على 4 فقط.

اطبع كل قيمة بين قوسين مربعين، وضع , بين القيم ولا تضع أي شيء بعد القيمة الأخيرة:

Array 1: [26], [23], [20], ...
Array 2: [36], [36], ...

جرّب بنفسك

fn main() {
    let numbers1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26];
    let numbers2 = [17, 53, 24, 77, 84, 98, 24, 36, 89, 31, 36];
    print!("Array 1: ");
    // اكتب شيفرتك هنا
    
    println!();
    print!("Array 2: ");
    // اكتب شيفرتك هنا
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم Rust عبر الإنترنت