• 0

ما الفرق بين include و extend في الروبي ؟

أريد معرف الفرق بين include و extend لأنني أجد أن لهما نفس الوظيفة فهل هنالك فرق بينهم ؟ أم أنهما نفس الشيء ؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

تقوم extend بإضافة توابع (methods) الوحدة وثوابتها إلى صنف ميتا (metaclass) المستهدف فعلى سبيل المثال إذا قمت باستدعاء obj.extend(Mod) سوف يأخذ obj توابع Mod (كتوابع المثيل) لكن لن يتم إضافة مثيل آخر لـ obj.class لديه هذه التوابع.

فـ extend هي تابع عام.

أما include فهي تقوم بشكل افتراضي بخلط توابع وحدة محددة كمثيل توابع إلى الوحدة\الصنف المستهدف، فإذا قمت باستدعاء class Klazz; include Mod; end;, سوف يكون لدى جميع مثيلات Klazz إمكانية الوصول إلى توابع Mod (كتوابع المثيل).

فـ include هي تابع خاص لأن الغرض منه أن يتم استدعاؤه من داخل الصنف\الوحدة.

 

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن