Skip to content

الفصل 14: القوالب والمفاهيم

📖 المستوى: متوسط  |  ⏱ الوقت المقدّر: 45 دقيقة  |  📝 تمارين: 5

ما ستتعلم في هذا الفصل

  • مفهوم القوالب (Generics)
  • السمات كقيود على القوالب
  • التعدد الشكلي (Polymorphism)

14.1 السمات (Traits)

السمات تحدد عقداً أو واجهة يجب أن يلتزم بها الصنف:

sad
سمة قابل_للطباعة
    دالة اطبع()
نهاية

سمة قابل_للمقارنة
    دالة قارن(آخر)
نهاية

صنف طالب نفّذ قابل_للطباعة، قابل_للمقارنة
    متغير اسم
    متغير معدل

    باني(اسم، معدل)
        هذا.اسم = اسم
        هذا.معدل = معدل
    نهاية

    دالة اطبع()
        اطبع_سطر(هذا.اسم + " — معدل: " + هذا.معدل)
    نهاية

    دالة قارن(آخر)
        ارجع هذا.معدل - آخر.معدل
    نهاية
نهاية

14.2 التعدد الشكلي مع السمات

sad
دالة اطبع_قائمة(عناصر)
    لكل عنصر في عناصر
        عنصر.اطبع()   # كل عنصر ينفذ السمة بطريقته
    نهاية
نهاية

متغير طلاب = [
    جديد طالب("أحمد"، 3.8)،
    جديد طالب("سارة"، 3.9)
]

اطبع_قائمة(طلاب)

تمارين

تمرين 1: سمة قابل_للتسلسل

أنشئ سمة قابل_للتسلسل مع دوال إلى_نص() و من_نص() ونفذها في صنف.


مُرخَّص بموجب رخصة MIT