مراجعة - إجراءات المستطيل
جزء من قسم Object Oriented Programming في رحلة Rust على Coddy — الدرس 7 من 61.
التحدي
سهلقم بإنشاء هيكل Rectangle يحتوي على حقلين: width (u32) و height (u32).
أضف كتلة تنفيذ (implementation block) لـ Rectangle تحتوي على ما يلي:
new— دالة مرتبطة (associated function) تأخذwidth: u32وheight: u32وتعيدRectangleجديداً.area— تأخذ&selfوتعيد المساحة كـu32.scale— تأخذ&mut selfوfactor: u32، وتقوم بضرب كل من العرض والارتفاع في هذا العامل (factor).
ستتلقى ثلاثة مدخلات:
- السطر الأول: العرض (u32)
- السطر الثاني: الارتفاع (u32)
- السطر الثالث: عامل القياس (u32)
قم بإنشاء Rectangle قابل للتعديل (mutable) باستخدام Rectangle::new بالأبعاد المقدمة. اطبع المساحة الأولية، ثم قم بتغيير مقاس المستطيل حسب العامل المعطى، واطبع المساحة الجديدة.
تنسيق المخرجات المتوقع:
{initial_area}
{scaled_area}جرّب بنفسك
use std::io;
// TODO: قم بتعريف هيكل Rectangle هنا
// TODO: أضف كتلة التنفيذ (implementation block) لـ Rectangle مع:
// - new: دالة مرتبطة تأخذ العرض والارتفاع، وتعيد Rectangle
// - area: تابع (method) يأخذ &self، ويعيد u32
// - scale: تابع يأخذ &mut self وعاملاً (factor)، ويقوم بضرب العرض والارتفاع
fn main() {
let mut input = String::new();
// قراءة العرض
io::stdin().read_line(&mut input).expect("Failed to read line");
let width: u32 = input.trim().parse().expect("Invalid number");
input.clear();
// قراءة الارتفاع
io::stdin().read_line(&mut input).expect("Failed to read line");
let height: u32 = input.trim().parse().expect("Invalid number");
input.clear();
// قراءة عامل القياس
io::stdin().read_line(&mut input).expect("Failed to read line");
let factor: u32 = input.trim().parse().expect("Invalid number");
// TODO: قم بإنشاء Rectangle قابل للتعديل باستخدام Rectangle::new
// TODO: اطبع المساحة الأولية
// TODO: قم بتغيير مقاس المستطيل حسب العامل (factor)
// TODO: اطبع المساحة الجديدة
}جميع دروس Object Oriented Programming
1الأساليب والسلوك
مقدمة في كتل التنفيذمعامل Selfالأساليب القابلة للتعديلالدوال المرتبطةكتل تنفيذ متعددةتسلسل الأساليبمراجعة - إجراءات المستطيل4مشروع: حيوان أليف افتراضي
تعريف الحيوان الأليفإطعام الحيوان الأليف2التغليف والوحدات البرمجية
أساسيات الوحدات البرمجيةالكلمة المفتاحية Publicالحقول الخاصةدوال Gettersدوال Settersمراجعة - الخزانة الآمنة5الأنواع العامة (Generics)
الـ Structs العامةالـ Methods العامةأنواع عامة متعددةالـ Functions العامةمراجعة - Coordinate Point3التعدادات المتقدمة (Advanced Enums)
التعدادات مع البياناتالأساليب (Methods) في التعداداتمطابقة حالات البياناتمراجعة التعداد Optionملخص - التعداد Shape6تعريف الـ Traits
ما هي الـ Trait؟تنفيذ الـ Traitsالتنفيذات الافتراضيةتجاوز التنفيذات الافتراضيةالـ Traits مع المعاملاتملخص - مشغل الوسائط