• 0

كيف أقوم باستدعاء تابع صنف من مثيل في الروبي ؟

هل هنالك طريقة في الروبي لاستدعاء تابع صنف من مثيل ؟ ففي المثال التالي:

class Truck
  def self.default_make
    # Class method.
    "mac"
  end

  def initialize
    # Instance method.
    Truck.default_make  # gets the default via the class's method.
    # But: I wish to avoid mentioning Truck. Seems I'm repeating myself.
  end
end

قمت بإعادة كتابة Truck لاستدعاء تابع  default_make، فهل هنالك طريقة أخرى دون أن أذكر اسم الصنف Truck ؟

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


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

الطريقة التي قمت بها صحيحة وليس بها أي مشكل في التعامل معها، لكن بما أنك أردت طريقة أخرى فيمكنك في هذه الحالة استخدام self.
فسيقوم self بالعودة إلى اسم الصنف أي self هي Truck في مثالك أي أننا بدل أن نكتب اسم الصنف Truck قمنا بكتابة self بشكل عام، ولتفهم أكثر ألق نظرة على هذا المثال:

class Foo
    def self.some_class_method
        puts self
    end

    def some_instance_method
        self.class.some_class_method
    end
end

print "Class method: "
Foo.some_class_method

print "Instance method: "
Foo.new.some_instance_method

حسنا والآن عند تشغيل هذا البرنامج سيظهر لنا التالي:

Class method: Foo
Instance method: Foo

حيث قمنا في المرة الأولى باستدعاء اسم التابع من الصنف وفي المرة الثانية قمنا باستدعاء اسم التابع من المثيل.
المصدر

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


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

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

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

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


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

تسجيل الدخول

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


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