0Pricing
Learn Rust Coding · درس

الأنواع العددية

الأعداد الصحيحة والعشرية وbool وchar

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

What Are Scalar Types?

يمثل النوع العددي (scalar) قيمة واحدة. يحتوي Rust على أربعة أنواع عددية أساسية:

  • الأعداد الصحيحة
  • الأعداد العشرية (فاصلة عائمة)
  • القيم المنطقية
  • المحارف
fn main() {
    let i = 10;       // integer
    let f = 2.5;      // float
    let b = true;     // bool
    let c = 'R';      // char
    println!("{} {} {} {}", i, f, b, c);
}

Integer Types

تأتي الأعداد الصحيحة في نوعين: ذات إشارة (i) وغير ذات إشارة (u) بأحجام ثابتة: i8 و i16 و i32 و i64 و i128، وينطبق الشيء نفسه على u.

نوع العدد الصحيح الافتراضي هو i32.

fn main() {
    let small: i8 = -120;
    let big: u64 = 18_000_000_000;
    println!("{} {}", small, big);
}

Signed vs Unsigned

الأعداد الصحيحة الموقعة (Signed) يمكن أن تكون سالبة؛ أما غير الموقعة (Unsigned) فلا يمكنها ذلك.

  • يتراوح نطاق i8 من -128 إلى 127.
  • يتراوح نطاق u8 من 0 إلى 255.

اختر الأنواع غير الموقعة عندما تكون القيمة لا يمكن أن تكون سالبة أبدًا، مثل العدادات.

fn main() {
    let temperature: i32 = -15;
    let people: u32 = 250;
    println!("temp {} people {}", temperature, people);
}

Integer Literals

يمكنك كتابة الأعداد الصحيحة بقواعد مختلفة واستخدام الشرطات السفلية لسهولة القراءة.

  • عشري: 1_000_000
  • ست عشري: 0xff
  • ثماني: 0o77
  • ثنائي: 0b1010
fn main() {
    let dec = 1_000;
    let hex = 0xff;
    let bin = 0b1010;
    println!("{} {} {}", dec, hex, bin);
}

Floating-Point Types

تمتلك لغة Rust نوعين من الأرقام العشرية (العائمة): f32 و f64. النوع الافتراضي هو f64 لأنه يوفر دقة أكبر.

تتبع الأرقام العشرية معيار IEEE-754.

fn main() {
    let pi: f64 = 3.141592;
    let e: f32 = 2.718;
    println!("pi {} e {}", pi, e);
}

Numeric Operations

تدعم لغة Rust العمليات الحسابية المعتادة: +، و-، و*، و/، و% (باقي القسمة).

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

fn main() {
    let sum = 5 + 10;
    let quotient = 7 / 2;     // 3 (integer)
    let remainder = 7 % 2;    // 1
    let float_div = 7.0 / 2.0; // 3.5
    println!("{} {} {} {}", sum, quotient, remainder, float_div);
}

The Boolean Type

يحتوي النوع bool على قيمتين فقط: true و false.

تُنتج القيم المنطقية (Booleans) من خلال عمليات المقارنة وتُستخدم في شروط if.

fn main() {
    let is_active = true;
    let is_bigger = 10 > 3;
    println!("{} {}", is_active, is_bigger);
}

The Character Type

يمثل char قيمة عدية (scalar value) واحدة من Unicode ويُكتب بين علامتي اقتباس مفردتين.

يبلغ حجم char في لغة Rust أربعة بايتات ويمكنه استيعاب أكثر بكثير من مجرد حروف ASCII، بما في ذلك الرموز التعبيرية (emoji) والحروف ذات العلامات التشكيلية.

fn main() {
    let letter = 'A';
    let symbol = '@';
    let heart = '\u{2764}';
    println!("{} {} {}", letter, symbol, heart);
}

char vs String

تُستخدم علامات الاقتباس المفردة لإنشاء char؛ بينما تُستخدم علامات الاقتباس المزدوجة لإنشاء شريحة نصية (&str).

  • 'a' عبارة عن حرف واحد.
  • "a" عبارة عن سلسلة نصية مكونة من حرف واحد.
fn main() {
    let c = 'x';
    let s = "x";
    println!("char {} string {}", c, s);
}

Type Conversion with as

لا تقوم لغة Rust بتحويل الأنواع الرقمية تلقائياً. استخدم الكلمة المفتاحية as للتحويل الصريح.

كن حذراً: التحويل إلى نوع أصغر قد يؤدي إلى فقدان البيانات.

fn main() {
    let x: i32 = 65;
    let y: f64 = x as f64;
    let c = x as u8 as char;
    println!("{} {} {}", x, y, c);
}

Putting Scalars Together

تدمج البرامج الأنواع العددية باستمرار. وهنا نقوم بدمج الأعداد الصحيحة، والأعداد العشرية، والقيم المنطقية لاتخاذ قرار.

fn main() {
    let price: f64 = 19.99;
    let quantity: u32 = 3;
    let total = price * quantity as f64;
    let is_expensive = total > 50.0;
    println!("total {} expensive {}", total, is_expensive);
}

Quick Check

اختبر معلوماتك حول القيم الحرفية (literals) العددية في لغة Rust.

Recap

أنواع البيانات القياسية الأربعة في لغة Rust:

  • الأعداد الصحيحة (Integers) — ذات إشارة (i32) وبدون إشارة (u32)، بأحجام مختلفة.
  • الأعداد العشرية (Floats) — f32 و f64، والقيمة الافتراضية هي f64.
  • القيمة المنطقية (bool) — صواب (true) أو خطأ (false).
  • المحارف (char) — قيمة Unicode واحدة محاطة بعلامتي اقتباس مفردتين.

استخدم as للتحويلات العددية الصريحة.

fn main() {
    let count: u32 = 42;
    let ratio: f64 = count as f64 / 7.0;
    let ok: bool = ratio > 5.0;
    let grade: char = 'B';
    println!("{} {} {} {}", count, ratio, ok, grade);
}

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

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

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

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

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

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

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

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

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

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

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

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

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