Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Trait الرسم

جزء من قسم Object Oriented Programming في رحلة Rust على Coddy — الدرس 49 من 61.

challenge icon

التحدي

سهل

لنبدأ في بناء نظام مستندات (Document System)! في هذا المشروع، ستقوم بإنشاء إطار عمل مرن لعرض مكونات واجهة المستخدم باستخدام كائنات السمات (trait objects). تبدأ الأساسيات بتعريف سمة Draw في ملف وحدة خاص بها.

ستقوم بإنشاء ملفين لتنظيم الكود الخاص بك:

  • draw.rs: قم بتعريف سمة Draw عامة مع طريقة واحدة تسمى draw تأخذ &self وتطبع المخرجات. ستعمل هذه السمة كعقد يجب على جميع مكونات واجهة المستخدم الوفاء به.
  • main.rs: قم باستيراد وحدة draw الخاصة بك وأنشئ هيكلًا (struct) بسيطًا يسمى Label مع حقل text عام (من نوع String). قم بتنفيذ سمة Draw لـ Label بحيث يؤدي استدعاء draw() إلى طباعة نص التسمية.

في الدالة الرئيسية (main function)، قم بإنشاء مثيل لـ Label واستدعِ طريقة draw() الخاصة به لعرض النص.

سيتم توفير المدخلات التالية:

  • سلسلة نصية تمثل نص التسمية

يجب أن تكون مخرجاتك هي نص التسمية تمامًا في سطر واحد.

جرّب بنفسك

mod draw;

use draw::Draw;

// TODO: قم بتعريف هيكل عام (public struct) يسمى Label مع حقل نصي عام (String)

// TODO: قم بتنفيذ سمة (trait) Draw لـ Label
// يجب أن تقوم طريقة draw بطباعة نص التسمية (label)

fn main() {
    let mut input = String::new();
    std::io::stdin().read_line(&mut input).expect("Failed to read line");
    let text = input.trim().to_string();

    // TODO: قم بإنشاء مثيل (instance) من Label مع نص الإدخال
    // TODO: قم باستدعاء طريقة draw() على التسمية (label)
}

جميع دروس Object Oriented Programming