دورة تعلم رست (Rust) جدول المحتويات

تعدد الأشكال باستخدام السمات (Polymorphism With Traits)

رست (Rust) يدعم تعدد الأشكال (Polymorphism) باستخدام السمات (Traits). تسمح لنا السمات (Traits) بربط مجموعة من التوابع (methods) بنوع هيكل (struct).

نحدد أولاً تواقيع (signatures) توابع السمة كما يلي:

trait MyTrait {
    fn foo(&self);
    ...
}

عندما ينفذ الهيكل (struct) سمة (trait) ما، فإنه ينشئ عقدًا يسمح لنا بالتفاعل بشكل غير مباشر مع الهيكل من خلال نوع سمة - trait type - (على سبيل المثال &dyn MyTrait) دون الحاجة إلى معرفة النوع الحقيقي.

يتم تعريف توابع السمة (traits methods) المراد تنفيذها في الهيكل ضمن كتلة التنفيذ (implementation block):

impl MyTrait for MyStruct { 
    fn foo(&self) {
        ...
    }
    ... 
}