• 0

هل هنالك صياغة بسيطة لتمثيل تابع صنف في روبي؟

أستطيع تمثيل تابع لصنف معين على طريق كتابة الأسطر الثلاثة التالية:

class << self
  alias :generate :new
end

لكن هل توجد طريقة أقصر للقيام بذلك؟ طريقة متكونة من سطر واحد فقط؟

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


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

يمكنك استخدام تابع singleton_class للوصول إلى كائن singleton لأي صنف (والذي ظهر في الإصدار 1.9 من لغة روبي)، وبهذه الطريقة يمكنك الوصول إلى تابع alias_method، وبما أن التابع خاص (private) لذلك سوف نحتاج إلى استدعائه أولا باستخدام تابع send ومن ثم تمرير بقية التوابع وستكون الشيفرة البرمجية النهاية متكونة من سطر واحد كما في المثال التالي:

singleton_class.send(:alias_method, :generate, :new)

لا تنسى أن alias لن يعمل هنا.

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


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

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

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

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


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

تسجيل الدخول

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


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