0Pricing
Learn Rust Coding · درس

Vectors

مصفوفات قابلة للنمو

Vectors درس مجاني في Learn Rust Coding على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn Rust Coding، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn Rust Coding 4 دروس في المجموع.

ما هو Vector؟

إن Vec<T> مصفوفة قابلة للتوسّع. وبخلاف المصفوفة ثابتة الحجم، يمكن للـ Vector أن يكبر أو ينكمش وقت التشغيل.

يجب أن تكون جميع العناصر من النوع نفسه T.

fn main() {
    let v: Vec<i32> = Vec::new();
    println!("empty vector with length {}", v.len());
}

الإنشاء باستخدام vec!

تُعد التعليمة البرمجية الكلية vec! أسهل طريقة لإنشاء Vector بقيم ابتدائية.

fn main() {
    let numbers = vec![1, 2, 3, 4];
    println!("{:?}", numbers);
}

إضافة العناصر

استخدم push لإضافة عنصر إلى النهاية. يجب أن يكون المتجه mut لتتمكن من تغييره.

fn main() {
    let mut v = Vec::new();
    v.push(10);
    v.push(20);
    v.push(30);
    println!("{:?}", v);
}

إزالة العناصر

تزيل pop العنصر الأخير وتعيده مغلفًا في Option. وتعيد None إذا كان المتجه فارغًا.

fn main() {
    let mut v = vec![1, 2, 3];
    let last = v.pop();
    println!("removed {:?}, now {:?}", last, v);
}

الوصول باستخدام الفهرس

استخدم الأقواس المربعة لفهرسة المتجه، تمامًا كما تفعل مع المصفوفة. يؤدي استخدام فهرس خارج النطاق إلى حدوث ذعر.

fn main() {
    let v = vec!["a", "b", "c"];
    println!("first {}", v[0]);
    println!("third {}", v[2]);
}

الوصول الآمن باستخدام get

تعيد الطريقة get قيمة من النوع Option بدلًا من التسبب في الذعر، ولذلك فهي أكثر أمانًا عند التعامل مع فهارس غير معروفة.

fn main() {
    let v = vec![10, 20, 30];
    match v.get(5) {
        Some(x) => println!("found {}", x),
        None => println!("no element there"),
    }
}

التكرار على متجه

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

fn main() {
    let v = vec![100, 200, 300];
    for item in &v {
        println!("item {}", item);
    }
}

تعديل المتجه أثناء التكرار

كرّر باستخدام &mut لتعديل كل عنصر في موضعه. أزل الإشارة المرجعية باستخدام * لتغيير القيمة.

fn main() {
    let mut v = vec![1, 2, 3];
    for item in &mut v {
        *item *= 10;
    }
    println!("{:?}", v);
}

طول المتجه وفراغه

استخدم len() لمعرفة عدد العناصر، وis_empty() للتحقق من عدم وجود أي عناصر.

fn main() {
    let v = vec![5, 6];
    println!("len {} empty {}", v.len(), v.is_empty());
}

طرق المتجه الشائعة

توفر المتجهات العديد من الأدوات المساعدة:

  • contains — للتحقق من وجود عنصر.
  • first / last — للحصول على الطرفين في صورة Option.
  • sort — لترتيب العناصر.
fn main() {
    let mut v = vec![3, 1, 2];
    v.sort();
    println!("{:?} contains 2: {}", v, v.contains(&2));
}

الجمع باستخدام المكررات

اجمع بين المتجهات وطرق المكررات لحساب الإجماليات بإيجاز.

fn main() {
    let v = vec![10, 20, 30, 40];
    let total: i32 = v.iter().sum();
    println!("total {}", total);
}

تحقق سريع

تذكّر الطريقة التي تزيد حجم المتجه.

مراجعة

المتجهات في Rust:

  • Vec<T> قائمة قابلة للنمو، وتحتوي عناصر من النوع نفسه.
  • أنشئها باستخدام Vec::new() أو vec![...].
  • تضيف push العناصر، بينما تزيل pop العناصر من النهاية.
  • يمكن الوصول إلى العناصر باستخدام [] أو بأمان باستخدام get.
  • كرّر باستخدام for x in &v.
fn main() {
    let mut scores = vec![80, 90];
    scores.push(100);
    let avg: i32 = scores.iter().sum::<i32>() / scores.len() as i32;
    println!("average {}", avg);
}

الأسئلة الشائعة

هل درس «Vectors» مجاني؟

نعم — نص درس «Vectors» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn Rust Coding، انتقل إلى CoddyKit PRO. تتضمن دورة Learn Rust Coding 4 دروس في المجموع.

ماذا ستتعلم في «Vectors»؟

مصفوفات قابلة للنمو تتمرن على Learn Rust Coding مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn Rust Coding؟

لا تُشترط خبرة سابقة. Learn Rust Coding على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «Vectors»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn Rust Coding هذا؟

نعم. كل درس في Learn Rust Coding يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. Vectors
  2. Strings و&str
  3. HashMaps
  4. التكرار على المجموعات
← العودة إلى Learn Rust Coding