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

ما هو الـ Vector؟

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

في لغة Rust، لديك طريقتان رئيسيتان لتخزين مجموعات من البيانات: المصفوفات (arrays) والمتجهات (vectors). بينما تمتلك المصفوفات حجماً ثابتاً يجب أن يكون معروفاً في وقت التصريف (compile time)، فإن المتجهات هي مجموعات ديناميكية يمكن أن تنمو وتتقلص أثناء تنفيذ البرنامج.

المتجه (vector)، الذي يُكتب كـ Vec<T>، هو نوع المصفوفة القابلة للتوسيع في لغة Rust. يمثل T نوع العناصر التي سيحتويها المتجه - على سبيل المثال، Vec<i32> للأعداد الصحيحة أو Vec<String> للسلاسل النصية. على عكس المصفوفات (arrays) حيث يجب عليك تحديد عدد العناصر بدقة مسبقاً، يمكن أن تبدأ المتجهات فارغة ويتم إضافة العناصر إليها أو إزالتها منها أثناء تشغيل البرنامج.

إليك متى تختار المتجه (vector) بدلاً من المصفوفة (array):

// Array - حجم ثابت، معروف في وقت التصريف
let scores = [85, 92, 78, 90]; // دائماً 4 عناصر بالضبط

// Vector - حجم ديناميكي، يمكن أن يتغير أثناء وقت التشغيل
let mut grades = Vec::new(); // يبدأ فارغاً، ويمكن أن ينمو

تعد المتجهات (Vectors) مثالية عندما لا تعرف عدد العناصر التي ستحتاجها مسبقاً، مثل تخزين مدخلات المستخدم، أو قراءة البيانات من الملفات، أو بناء قوائم تتغير بناءً على منطق البرنامج. فهي توفر المرونة التي لا تستطيع المصفوفات (arrays) تقديمها مع الحفاظ على وصول فعال إلى العناصر.

quiz iconاختبر نفسك

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

quiz iconاختبر نفسك

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

quiz iconاختبر نفسك

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

ورقة مرجعية

المتجهات (Vec<T>) هي مجموعات ديناميكية يمكن أن تنمو وتتقلص أثناء تنفيذ البرنامج، على عكس المصفوفات التي لها حجم ثابت معروف في وقت التصريف.

يمثل T نوع العناصر التي سيحتويها المتجه:

Vec<i32>    // متجه من الأعداد الصحيحة
Vec<String> // متجه من النصوص

إنشاء متجه:

let mut grades = Vec::new(); // يبدأ فارغاً، ويمكن أن ينمو

مقارنة مع المصفوفات:

// مصفوفة - حجم ثابت
let scores = [85, 92, 78, 90]; // دائماً 4 عناصر بالضبط

// متجه - حجم ديناميكي
let mut grades = Vec::new(); // يمكن أن يتغير أثناء وقت التشغيل

استخدم المتجهات عندما لا تعرف عدد العناصر التي ستحتاجها مسبقاً، مثل تخزين مدخلات المستخدم، أو قراءة البيانات من الملفات، أو بناء قوائم تتغير بناءً على منطق البرنامج.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

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

جميع دروس Logic & Flow