التابع Object.method في روبي

من موسوعة حسوب
< Ruby‏ | Object
مراجعة 14:55، 24 نوفمبر 2018 بواسطة محمد-خطيب (نقاش | مساهمات) (أنشأ الصفحة ب'{{DISPLAYTITLE:التابع Object.method في روبي}} يبحث التابع <code>method</code> عن تابعٍ باسمٍ محدَّد في الكائن المعط...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)


يبحث التابع method عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا (receiver)، ثمَّ يعيد كائنًا من النوع Method لذلك التابع (أو يرمي الاستثناء NameError). يتصرَّف الكائن Method كتعبيرٍ مغلق (closure) في نسخ الكائن الخاصة بالكائن الذي يبحث فيه؛ لذلك، تبقى متغيِّرات النسخة (instance variables) وقيمة self متاحةً.

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

method(sym)  method

المعاملات

sym

رمزٌ يشير إلى اسم التابع المراد البحث عنه.

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

يُعاد كائنًا من النوع Method يمثِّل التابع الموافق للاسم sym الموجود في الكائن المعطى، أو يُرمى الاستثناء NameError إذا لم يُعثَر على هذا التابع.

أمثلة

مثالٌ عن استخدام التابع method:

class Demo

 def initialize(n)

   @iv = n

 end

 def hello()

   "Hello, @iv = #{@iv}"

 end

end

k = Demo.new(99)

m = k.method(:hello)

m.call   #=> "Hello, @iv = 99"

l = Demo.new('Fred')

m = l.method("hello")

m.call   #=> "Hello, @iv = Fred"

انظر أيضًا

  • التابع public_method: يبحث عن التوابع العامة فقط بشكل مشابه لعمل التابع method.
  • التابع public_send: يَستدعي التابع المعرَّف برمزٍ محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة.
  • التابع send: يَستدعي التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة.
  • التابع remove_instance_variable: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر.

مصادر