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

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

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

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

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

هيكلشخص {
اسم: خيط,
عمر: u8,
الطالب: منطقي,
}

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

instagram viewer

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

يترك person = شخص {
اسم: خيط::من("جون"),
عمر: 27,
الطالب: حقيقي,
};

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

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

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

ضمني شخص {
// حدد دالة منشئ "جديد" تأخذ "الاسم" و "العمر" و
// معلمات `is_student`
الجبهة الوطنيةجديد(اسم: خيط، عمر: u8، الطالب: منطقي) -> الذات {
// إنشاء مثيل جديد لبنية "الشخص" وتهيئة حقولها
// مع القيم المقدمة
الذات {
اسم،
عمر،
طالب ،
}
}
}

// قم باستدعاء دالة المُنشئ "الجديدة" لبنية "الشخص" وعيِّن الامتداد
// المثيل الناتج إلى "الشخص"
يترك شخص = شخص:: جديد (خيط::من("جون"), 27, حقيقي);

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

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

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

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

// التصريح ببنية الشخص
هيكلشخص {
اسم: خيط,
عمر: u8,
الطالب: منطقي,
}

الجبهة الوطنيةرئيسي() {
// إنشاء هيكل
يتركموت person = شخص {
اسم: خيط::من("جون"),
عمر: 27,
الطالب: حقيقي,
};

// طباعة الاسم والحقول العمرية للبنية
println!("اسم: {}"، اسم الشخص)؛
println!("عمر: {}"، person.age) ؛

// modifiy الحقل is_student
person.is_student = خطأ شنيع;

println!("طالب: {}"، person.is_student) ؛
}

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

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

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

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

هيكلشخص {
اسم: خيط,
عمر: u8,
الطالب: منطقي,
}

ضمني شخص {
الجبهة الوطنيةقل مرحبا(&الذات) {
println!("مرحبًا ، اسمي {} وعمري {} عام.", الذات.اسم،
الذات.عمر)؛
}

الجبهة الوطنيةhave_birthday(&موتالذات) {
الذات.age + = 1;
}
}

الجبهة الوطنيةرئيسي() {
يتركموت person = شخص {
اسم: خيط::من("جون"),
عمر: 27,
الطالب: حقيقي,
};

person.say_hello () ،

person.have_birthday () ،

println!("عصر جديد: {}"، person.age) ؛
}

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

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

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

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