• لمتابعة آخر المقالات و الحيل التقنية و كسب كورسات مجانية انضم لقناتنا الآن   انضم الان

أساسيات Rust: أنواع البيانات والطباعة

Just Ice


 

 أساسيات Rust: أنواع البيانات والطباعة

مقدمة

بعد أن قمت بتثبيت وإعداد بيئة عمل Rust، حان الوقت للتعمق في أساسيات هذه اللغة القوية. سنتعلم كيفية التعامل مع أنواع البيانات المختلفة، كيفية قراءة الإدخال من المستخدم، ونظرة عامة على كيفية عمل الذاكرة في Rust.

أنواع البيانات في Rust

Rust تدعم مجموعة متنوعة من أنواع البيانات التي تساعد في تحديد البيانات بدقة وآمان. هناك أنواع أساسية ومتقدمة مثل:

  • الأعداد الصحيحة: تستخدم للقيم الصحيحة اي الارقام الصحيحة . مثال: rust let my_integer: i32 = 42;

  • الأعداد العشرية: تستخدم للأرقام العشرية. مثال: rust let my_float: f64 = 3.14;

  • القيم المنطقية: تستخدم للقيم true/false. مثال: rust let is_rust_fun: bool = true;

  • الأحرف: تستخدم لتمثيل الأحرف Unicode. مثال: rust let my_char: char = 'A';

  • السلاسل الحرفية: تستخدم لتخزين النصوص. مثال: rust let my_string: String = String::from("مرحباً رست");

الإدخال والإخراج في Rust

للقراءة من المستخدم، نستخدم std::io::stdin() وللطباعة نستخدم println!. على سبيل المثال:

use std::io;

fn main() {
    println!("أدخل اسمك:");

    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("فشل قراءة الإدخال");

    println!("مرحباً, {}", input.trim());
}

الطباعة في Rust

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

fn main() {
    let name = "أحمد";
    let age = 30;

    println!("مرحباً, {}! عمرك هو {}", name, age);
}

الـ Heap vs الـ Stack في Rust

الخصائص الـ Heap الـ Stack
التعريف منطقة ذاكرة تُستخدم لتخزين البيانات التي تم إنشاؤها في وقت التشغيل. منطقة ذاكرة تُستخدم لتخزين المتغيرات المعرفة في وقت الترجمة.
الإدارة يتم إدارة الـ Heap يدويًا من خلال عمليات التخصيص والتحرير والإفراج عن الذاكرة. يتم إدارة الـ Stack تلقائيًا من قبل Rust، حيث يتم إنشاء وإزالة المتغيرات بناءً على نطاقها.
الحجم والمدة يمكن أن تكون البيانات في الـ Heap أكبر حجمًا وتعيش لفترة زمنية أطول. حجم البيانات في الـ Stack محدود وتعيش لفترة زمنية قصيرة، حيث يتم إزالتها تلقائيًا عند انتهاء نطاقها.
الاستخدام النمطي يستخدم الـ Heap للبيانات الديناميكية مثل السلاسل النصية والبيانات المُخصصة. يستخدم الـ Stack للمتغيرات الأساسية والبيانات الثابتة التي يتم تحديدها في وقت الترجمة.

أمثلة على الـ Heap و الـ Stack في Rust

مثال على الـ Stack

fn main() {
    // مثال على التخزين في Stack
    let greeting = "مرحبا";
    let name = "رست";
    println!("{}، {}!", greeting, name);
}

في هذا المثال، يتم تخزين النصوص greeting و name في الـ Stack لأنها نصوص ثابتة ولا يمكن تغييرها.

مثال على الـ Heap

fn main() {
    // الـ Heap: تخزين سلسلة نصية ديناميكية
    let mut s = String::from("اهلا برست");

    // تعديل السلسلة النصية في الـ Heap
    s.push_str(" معدلة في ال Heap");

    // الطباعة من الـ Heap
    println!("{}", s); // سلسلة نصية معدلة في الـ Heap
}

في هذا المثال، يتم تخزين السلسلة النصية s في الـ Heap لأنها سلسلة ديناميكية يمكن تغيير حجمها.

الخلاصة

فهم الفرق بين الـ Heap والـ Stack مهم لتصميم برامج Rust فعالة وآمنة. الـ Stack تُستخدم لتخزين البيانات التي يمكن الوصول إليها بسرعة والتي تُحذف تلقائيًا عند انتهاء النطاق، مثل المتغيرات الأساسية الثابتة. بالمقابل، الـ Heap تُستخدم لتخزين البيانات الديناميكية التي يمكن أن تكون أكبر حجمًا وتحتاج إلى إدارة يدوية للذاكرة، مثل السلاسل النصية التي يمكن تعديلها خلال وقت التشغيل.

عند كتابة برامج بلغة Rust، عليك التفكير في كيفية إدارة البيانات بفعالية لتحقيق الأداء الأمثل وتجنب التسريبات في الذاكرة. على سبيل المثال، استخدم الـ Stack للبيانات الثابتة والبسيطة التي لا تحتاج إلى تغييرات كبيرة، واستخدم الـ Heap للبيانات التي تحتاج إلى مرونة أكبر في الحجم والعمر الافتراضي.

بفهم هذا التوزيع واستخدام الأدوات المتاحة في Rust مثل println! للطباعة وstd::io::stdin() للإدخال، يمكنك كتابة برامج قوية وآمنة تعتمد على مبادئ إدارة الذاكرة الحديثة. Rust توفر ميزات فريدة مثل امتلاك البيانات وقروض البيانات (ownership and borrowing) التي تساعد على ضمان الأمان في الذاكرة ومنع الأخطاء الشائعة مثل الاستخدام المزدوج للذاكرة أو التسريبات.

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

إرسال تعليق

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.