مكون النص
جزء من قسم Object Oriented Programming في رحلة Rust على Coddy. الدرس 50 من 61.
التحدي
سهلبناءً على سمة Draw التي أنشأتها في الدرس السابق، دعنا نضيف أول مكون واجهة مستخدم حقيقي: TextField. سيمثل هذا المكون عنصر عرض نصي في نظام المستندات الخاص بنا.
ستقوم بتوسيع مشروعك بملف وحدة (module) جديد:
draw.rs: احتفظ بسمةDrawالخاصة بك من التحدي السابق.text_field.rs: أنشئ هيكلTextFieldمع حقلcontentعام (من نوعString). قم بتنفيذ سمةDrawلـTextFieldبحيث يؤدي استدعاءdraw()إلى طباعة النص بتنسيق محدد:Text: {content}main.rs: قم باستيراد كلا الوحدتين وأنشئ مثيلاً لـTextField. استدعِ تابعdraw()الخاص به لعرض المكون.
تذكر أن وحدة text_field الخاصة بك تحتاج إلى استخدام سمة Draw من وحدة draw. يمكنك الوصول إليها باستخدام crate::draw::Draw بما أن كلا الوحدتين جزء من نفس الـ crate.
سيتم توفير المدخلات التالية:
- سلسلة نصية تمثل محتوى حقل النص
يجب أن يتبع مخرجك هذا التنسيق تماماً:
Text: Hello Worldجرّب بنفسك
mod draw;
mod text_field;
use draw::Draw;
pub struct Label {
pub text: String,
}
impl Draw for Label {
fn draw(&self) {
println!("{}", self.text);
}
}
fn main() {
let mut input = String::new();
std::io::stdin().read_line(&mut input).expect("Failed to read line");
let content = input.trim().to_string();
// TODO: أنشئ كائن TextField واستدعِ الدالة draw() عليه
}جميع دروس 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 مع المعاملاتملخص - مشغل الوسائطتدرّب بنفسك: مترجم Rust عبر الإنترنت