0Pricing
Learn Rust Coding · درس

الأنواع المركبة

Tuples وarrays

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

What Are Compound Types?

الأنواع المركبة تجمع قيماً متعددة في قيمة واحدة. لغة Rust تمتلك نوعين بدائيين من الأنواع المركبة:

  • الصفوف (Tuples) — مجموعات ثابتة الحجم من أنواع قد تكون مختلفة.
  • المصفوفات (Arrays) — مجموعات ثابتة الحجم من نفس النوع.
fn main() {
    let tup = (1, 2.0, 'c');
    let arr = [10, 20, 30];
    println!("{} {}", tup.0, arr[0]);
}

Creating Tuples

تُجمع الصفوف (Tuples) القيم داخل أقواس. يمكن أن يكون كل عنصر من نوع مختلف.

نوع الصف هو مزيج من أنواع عناصره.

fn main() {
    let person: (&str, u32, f64) = ("Alice", 30, 5.6);
    println!("{} is {} years old", person.0, person.1);
}

Accessing Tuple Elements

يمكن الوصول إلى عناصر الصف (tuple) بواسطة الفهرس باستخدام نقطة، بدءاً من 0.

  • tup.0 هو العنصر الأول.
  • tup.1 هو العنصر الثاني.
fn main() {
    let point = (3, 7);
    let x = point.0;
    let y = point.1;
    println!("x={} y={}", x, y);
}

Destructuring Tuples

يمكنك تفكيك الكائن (tuple) إلى متغيرات منفصلة في خطوة واحدة. يُسمى هذا بـ إلغاء البنية (destructuring).

fn main() {
    let coords = (1.5, 2.5, 3.5);
    let (a, b, c) = coords;
    println!("{} {} {}", a, b, c);
}

The Unit Type

يُطلق على الصف الفارغ () اسم نوع الوحدة (unit type). وهو يمثل "عدم وجود قيمة ذات معنى".

الدوال التي لا تُرجع شيئاً تقوم في الواقع بإرجاع ().

fn main() {
    let nothing = ();
    println!("unit value is {:?}", nothing);
}

Creating Arrays

تحتفظ المصفوفة بقيم متعددة من نفس النوع بطول ثابت، وتُكتب بين قوسين مربعين.

نوعها هو [type; length].

fn main() {
    let days: [&str; 3] = ["Mon", "Tue", "Wed"];
    let numbers = [1, 2, 3, 4, 5];
    println!("{} {}", days[1], numbers[4]);
}

Array Indexing

يمكنك الوصول إلى عناصر المصفوفة باستخدام الأقواس المربعة وفهرس يبدأ من الصفر.

يؤدي الوصول إلى فهرس خارج النطاق إلى حدوث ذعر (panic) أثناء التشغيل — حيث يقوم Rust بالتحقق من الحدود لضمان الأمان.

fn main() {
    let colors = ["red", "green", "blue"];
    println!("first {}", colors[0]);
    println!("last {}", colors[2]);
}

Repeated Initial Values

لملء مصفوفة بنفس القيمة، استخدم [value; count].

ينشئ هذا مصفوفة مكونة من count من العناصر، جميعها تساوي value.

fn main() {
    let zeros = [0; 5];
    println!("{:?}", zeros);
    println!("length is {}", zeros.len());
}

Array Length

تقوم الدالة .len() بإرجاع عدد العناصر في المصفوفة. يتم تحديد الطول بشكل ثابت عند وقت الترجمة.

إذا كنت بحاجة إلى قائمة قابلة للزيادة، استخدم Vec بدلاً من ذلك.

fn main() {
    let scores = [88, 92, 75, 100];
    println!("there are {} scores", scores.len());
}

Iterating an Array

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

fn main() {
    let nums = [2, 4, 6, 8];
    let mut sum = 0;
    for n in nums {
        sum += n;
    }
    println!("sum = {}", sum);
}

Tuples vs Arrays

متى تستخدم كلاً منهما:

  • استخدم tuple لمجموعة ثابتة من الأنواع المختلفة، مثل إحداثيات متبوعة بتسمية.
  • استخدم array لمجموعة ثابتة من نفس النوع، مثل قائمة من الدرجات.
fn main() {
    let record = ("Bob", [90, 85, 95]);
    println!("{} first score {}", record.0, (record.1)[0]);
}

Quick Check

اختر العبارة الصحيحة حول أنواع البيانات المركبة في لغة Rust.

Recap

أنواع البيانات المركبة في Rust:

  • Tuples (الصفات) — (a, b, c)، أنواع مختلطة، يتم الوصول إليها عبر .0، قابلة للتفكيك.
  • Arrays (المصفوفات) — [a, b, c]، من نفس النوع، طول ثابت، يتم الوصول إليها عبر [index].
  • () هو نوع الوحدة (unit type).
fn main() {
    let (name, scores) = ("Cara", [70, 80, 90]);
    let mut total = 0;
    for s in scores {
        total += s;
    }
    println!("{} total {}", name, total);
}

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

هل درس «الأنواع المركبة» مجاني؟

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

ماذا ستتعلم في «الأنواع المركبة»؟

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

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

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

كم من الوقت يستغرق درس «الأنواع المركبة»؟

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

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

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

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

  1. let وقابلية التغيير
  2. الأنواع العددية
  3. الأنواع المركبة
  4. حجب الأسماء
← العودة إلى Learn Rust Coding