دليل للعمل مع هياكل الصدأ

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

إحدى الميزات الرئيسية التي تجعل Rust قوية وأكثر جاذبية هي دعمها للهياكل. الهياكل هي أنواع بيانات مركبة لتجميع البيانات ذات الصلة. أنها تسمح لك بتحديد أنواع البيانات المخصصة مع الحقول المسماة التي تعمل على تحسين تنظيم التعليمات البرمجية وتسهيل معالجة البيانات.





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





لا يوجد صوت على نظام تشغيل الكمبيوتر المحمول 10

تحديد الهياكل وحقول الهيكل

ستحدد بنية باستخدام ملحق هيكل الكلمة الأساسية متبوعة باسم للبنية. اتبع ذلك من خلال تحديد أسماء الحقول الخاصة بالبنية و أنواع بيانات الصدأ داخل زوج من الأقواس المتعرجة.





 struct Person { 
    name: String,
    age: u8,
    is_student: bool,
}

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

يمكنك استخدام البنية الحرفية لإنشاء مثيلات البنية بعد تعريف البنية. تحدد القيم الحرفية للبنية قيم حقول البنية.



 let person = Person { 
    name: String::from("John"),
    age: 27,
    is_student: true,
};

ال شخص المتغير هو مثيل لـ شخص تم إنشاؤه باستخدام بنية حرفية. تُنشئ هذه الحرفية جميع حقول البنية بقيم نوع البيانات المطابق لها.

استخدام المنشئات لإنشاء الهياكل

يمكنك أيضًا استخدام دالة مُنشئ لإنشاء مثيل للبنية.





 impl Person { 
    // Define a constructor function `new` that takes `name`, `age` and
    // `is_student` parameters
    fn new(name: String, age: u8, is_student: bool) -> Self {
        // Create a new instance of `Person` struct and initialize its fields
        // with the provided values
        Self {
            name,
            age,
            is_student,
        }
    }
}

// Call the `new` constructor function of the `Person` struct and assign the
// resulting instance to `person`
let person = Person::new(String::from("John"), 27, true);

يعرّف البرنامج أعلاه المُنشئ لـ شخص هيكل مع ضمني كلمة رئيسية. ال جديد يأخذ المُنشئ الحقول الهيكلية كوسائط ويعيد مثيلًا جديدًا للبنية مع القيم المُهيأة.

يمكنك إنشاء ملف شخص على سبيل المثال مع جديد المُنشئ ، ويمررها الحجج المناسبة.





الوصول إلى حقول الهيكل وتعديلها

يمكنك الوصول إلى الحقول الهيكلية وتعديلها باستخدام تدوين نقطي. يمكنك ببساطة استخدام النقطة ( . ) متبوعًا باسم الحقل للوصول إلى قيمته أو تغييرها.

 // declare a Person struct 
struct Person {
    name: String,
    age: u8,
    is_student: bool,
}

fn main() {
    // instantiate a struct
    let mut person = Person {
        name: String::from("John"),
        age: 27,
        is_student: true,
    };

    // print the name and age fields of the struct
    println!("Name: {}", person.name);
    println!("Age: {}", person.age);

    // modifiy the is_student field
    person.is_student = false;

    println!("Is student: {}", person.is_student);
}

يقوم البرنامج بإنشاء هيكل ، وإنشاء مثيل له ، وطباعة ملف اسم، و عمر الحقول ، ويقوم بتعديل طالب قبل طباعة الحقل.

  نتيجة الوصول إلى حقول الهيكل وتعديلها

طرق التصريح عن الهياكل

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

إليك كيف يمكنك التصريح عن طرق البنى واستخدام تلك الطرق لتنفيذ العمليات:

 struct Person { 
    name: String,
    age: u8,
    is_student: bool,
}

impl Person {
    fn say_hello(&self) {
        println!("Hello, my name is {} and I'm {} years old.", self.name,
          self.age);
    }

    fn have_birthday(&mut self) {
        self.age += 1;
    }
}

fn main() {
    let mut person = Person {
        name: String::from("John"),
        age: 27,
        is_student: true,
    };

    person.say_hello();

    person.have_birthday();

    println!("New age: {}", person.age);
}

يحدد البرنامج طريقتين لـ شخص هيكل. ال قل مرحبا الأسلوب يأخذ إشارة إلى الذات ويطبع تحية تتضمن اسم الشخص وعمره. ال have_birthday أسلوب يأخذ إشارة قابلة للتغيير إلى الذات ويزيد من عمر الشخص.

  نتيجة التصريح عن طرق التراكيب

يعمل نموذج ملكية Rust على تحسين إدارة الذاكرة

الهياكل هي هياكل بيانات متعددة الاستخدامات ، تعمل كنوع من مكافئ الحد الأدنى للفئة.

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