التابع Module.instance_methods‎ في روبي

من موسوعة حسوب
< Ruby‏ | Module
مراجعة 12:25، 19 نوفمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (مراجعة وتدقيق.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يعيد التابع instance_methods مصفوفةً تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل. بالنسبة للوحدات، ستكون التوابع هي العامة والمحمية. أما بالنسبة للأصناف، فستكون تلك التوابع هي توابع النسخ (وليس التوابع المفردة [singleton methods]). إذا كان أعطي المعامل الاختيار وكانت قيمته false، فلن يتم تضمين توابع الأسلاف (ancestors).

البنية العامة

instance_methods(include_super=true) array

المعاملات

include_super‎

قيمة منطقية إن أعطيت وكانت false، فلن يتم تضمين توابع الأسلاف (ancestors).

القيمة المعادة

تعاد مصفوفة تحتوي على أسماء توابع النسخ العامة والمحمية (protected) في المستقبِل.

أمثلة

مثال على استخدام التابع instance_methods‎:

module A
  def method1()  end
end
class B
  include A
  def method2()  end
end
class C < B
  def method3()  end
end
A.instance_methods(false)                   #=> [:method1]
B.instance_methods(false)                   #=> [:method2]
B.instance_methods(true).include?(:method1) #=> true
C.instance_methods(false)                   #=> [:method3]
C.instance_methods.include?(:method2)       #=> true‎

انظر أيضا

  • التابع instance_method: يعيد كائنًا من النوع UnboundMethod يمثل تابع النسخة (instance method) المعطى في الوحدة.
  • التابع method_added: يُستدعى في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver).

مصادر