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

التصريح عن النوع

جزء من قسم Fundamentals في رحلة Rust على Coddy — الدرس 10 من 75.

بمجرد التصريح عن متغير بنوع معين، فإنه لا يمكنه سوى الاحتفاظ بقيم من ذلك النوع. على سبيل المثال، لا يمكن لمتغير i32 سوى الاحتفاظ بقيم صحيحة، ولا يمكن لمتغير String سوى الاحتفاظ بالنصوص.

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

let mut age: i32 = 25;  // يمكنه فقط استيعاب الأعداد الصحيحة
let mut name: &str = "Alice";  // يمكنه فقط استيعاب النصوص

هذه ستؤدي إلى أخطاء:

age = "Bob";  // خطأ: لا يمكن وضع نص في متغير من نوع i32
name = 30;  // خطأ: لا يمكن وضع رقم في متغير من نوع String

هذه قيم صالحة:

age = 26;  // جيد: تعيين عدد صحيح جديد
name = "Jane";  // جيد: تعيين سلسلة نصية جديدة
challenge icon

التحدي

مبتدئ

قم بالتصريح عن المتغيرات التالية مع أنواعها وقيمها المقابلة:

  • متغير من نوع i32 باسم count وقيمته 10.
  • متغير من نوع f64 باسم total وقيمته 150.75.
  • متغير من نوع char باسم grade وقيمته 'A'.
  • متغير من نوع bool باسم is_active وقيمته false.
  • متغير من نوع String باسم user_name وقيمته "Bob123".

بعد التصريح عن هذه المتغيرات، استخدم println!() لطباعة قيم المتغيرات إلى وحدة التحكم بالتنسيق التالي:

Count: [value of count]
Total: [value of total]
Grade: [value of grade]
Active: [value of is_active]
User Name: [value of user_name]

ورقة مرجعية

المتغيرات في Rust لها أنواع ثابتة ويمكنها فقط الاحتفاظ بقيم من ذلك النوع المحدد:

let mut age: i32 = 25;        // متغير عدد صحيح
let mut name: &str = "Alice"; // متغير نصي

بمجرد التصريح عنها، يمكنك فقط تعيين قيم من نفس النوع. يجب التصريح عن المتغيرات باستخدام mut للسماح بإعادة التعيين:

age = 26;        // صالح: تعيين عدد صحيح آخر
name = "Jane";   // صالح: تعيين سلسلة نصية أخرى

age = "Bob";     // خطأ: لا يمكن تعيين نص لـ i32
name = 30;       // خطأ: لا يمكن تعيين رقم لـ String

تشمل أنواع Rust الشائعة ما يلي:

  • i32 - أعداد صحيحة 32 بت
  • f64 - أعداد الفاصلة العائمة 64 بت
  • char - أحرف مفردة (استخدم علامات الاقتباس المفردة)
  • bool - قيم منطقية (true/false)
  • String - سلاسل نصية

جرّب بنفسك

fn main() {
    // قم بتعريف المتغيرات هنا
    
    
    // إخراج القيم
    println!("Count: {}", count);
    println!("Total: {}", total);
    println!("Grade: {}", grade);
    println!("Active: {}", is_active);
    println!("User Name: {}", user_name);
    
}
quiz iconاختبر نفسك

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

جميع دروس Fundamentals