Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

التكرار عبر الـ Vector

جزء من قسم Logic & Flow في رحلة Rust على Coddy — الدرس 11 من 66.

الآن بعد أن عرفت كيفية إنشاء المتجهات والوصول إلى العناصر الفردية، دعنا نتعلم كيفية معالجة كل عنصر في المتجه بشكل منهجي. تُعد حلقة for مثالية لهذه المهمة، مما يسمح لك بزيارة كل عنصر بالتسلسل.

إليك الصيغة الأساسية للتكرار عبر vector:

let names = vec!["Alice", "Bob", "Charlie"];

for name in &names {
    println!("Hello, {}!", name);
}

لاحظ الـ & قبل names - فهذا ينشئ مرجعاً للمتجه، مما يسمح لك بقراءة كل عنصر دون نقل ملكية المتجه نفسه. تمنحك كل دورة إمكانية الوصول إلى عنصر واحد في كل مرة من خلال متغير الحلقة name.

تتعامل حلقة for تلقائياً مع التحقق من الحدود من أجلك. وعلى عكس الفهرسة اليدوية، لن تحاول أبداً عن طريق الخطأ الوصول إلى عنصر غير موجود. ستقوم الحلقة بزيارة عدد العناصر التي يحتوي عليها المتجه (vector) بالضبط، مما يجعلها آمنة ومريحة في نفس الوقت.

يمكنك استخدام هذا النمط مع أي نوع من الـ vector:

let scores = vec![85, 92, 78, 90];

for score in &scores {
    println!("Score: {}", score);
}

هذا النهج هو الطريقة الأكثر شيوعاً واصطلاحاً لمعالجة جميع العناصر في المتجه (vector) عندما تحتاج إلى قراءة قيمها.

challenge icon

التحدي

سهل

اكتب دالة sum_all_elements تأخذ متجهًا numbers وتعيد مجموع كل عناصره.

استخدم حلقة for للتكرار عبر المتجه وتجميع مجموع كل العناصر.

المعاملات:

  • numbers (Vec<i32>): المتجه من الأعداد الصحيحة لجمعها

القيمة المرجعة: مجموع كل العناصر في المتجه (i32)

ورقة مرجعية

لتكرار العناصر في متجه (vector)، استخدم حلقة for مع مرجع (reference) للمتجه:

let names = vec!["Alice", "Bob", "Charlie"];

for name in &names {
    println!("Hello, {}!", name);
}

الرمز & قبل اسم المتجه ينشئ مرجعاً، مما يسمح لك بقراءة كل عنصر دون نقل الملكية (ownership). تتعامل الحلقة تلقائياً مع التحقق من الحدود وتزور بالضبط عدد العناصر التي يحتوي عليها المتجه.

يعمل هذا النمط مع أي نوع من المتجهات:

let scores = vec![85, 92, 78, 90];

for score in &scores {
    println!("Score: {}", score);
}

جرّب بنفسك

fn sum_all_elements(numbers: Vec<i32>) -> i32 {
    // اكتب الكود هنا
}
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow