الإرسال الحيوي والساكن (Dynamic vs Static Dispatch)
التوابع تنفذ بطريقتين:
- الإرسال الساكن (static dispatch) - عندما يكون نوع المثيل (instance) معروفًا، تكون لدينا معرفة مباشرة بالدلة التي يجب استدعاؤها.
- الإرسال الحيوي (dynamic dispatch) - عندما لا يكون نوع المثيل (instance) معروفًا، يجب علينا اكتشاف طريقة ما لاستدعاء الدالة الصحيحة.
أنواع السمات (Trait types) أي &dyn MyTrait
القدرة على العمل مع مثلاء الكائنات (instances of objects) بشكل غير مباشر باستخدام الإرسال الحيوي أو الديناميكي.
عند استخدام الإرسال الحيوي (dynamic dispatch)، سيشجعك رست (Rust) على وضع dyn
قبل نوع السمة الخاصة بك حتى يكون الناس على علم بذلك.
تفاصيل الذاكرة:
- الإرسال الحيوي (dynamic dispatch) أبطأ قليلاً بسبب تعقب المؤشر (pointer) من أجل العثور على استدعاء الدلية الحقيقية.