الصنف Method
في روبي
يتم إنشاء كائنات الصنف Method
بواسطة التابع Object.method
، وترتبط بكائن معين (وليس بالصنف وحسب). ويمكن استخدامها لاستدعاء التابع داخل الكائن، أو ككتلة (block) مرتبطة بمكرر (iterator). كما يمكن فك ارتباطها (unbound) من كائن محدد (سيؤدي ذلك إلى إنشاء الكائن UnboundMethod
) ثم ربطها بآخر.
class Thing
def square(n)
n*n
end
end
thing = Thing.new
meth = thing.method(:square)
meth.call(9) #=> 81
[ 1, 2, 3 ].collect(&meth) #=> [1, 4, 9]
توابع الكائن العامة (Public Instance Methods)
==
يتحقق المعامل ==
من تساوي كائنين من النوع Method
.
===
يستدعي المعامل ===
كتلة التابع مع تمرير الكائن الواقع على يمينه كوسيط إلى المعامل الواقع على يساره كما هو الحال في Proc.call
.
[]
يستدعي الكتلة البرمجية للتابع، ويضبط قيم وسائط الكتلة عند القيم المعطاة.
arity
يعيد مؤشرًا يمثل لعدد الوسائط المقبولة من قبل التابع (method) الذي استُدعي معه.
call
يستدعي كتلة التابع، ويضبط وسائط الكتلة عند القيم المعطاة باستخدام صياغة مشابهة لصياغة استدعاء التوابع.
clone
يعيد نسخة من التابع الذي استُدعي معه.
curry
يعيد كائن proc
مُجزّء (curried proc) انطلاقًا من التابع الذي استُدعي معه.
eql?
يتحقق من تساوي كائنين من النوع Method
.
hash
يعيد القيمة hash المقابلة للكائن Method
الذي استُدعي معه.
inspect
يعيد اسم الأصلي (underlying method).
name
يعيد اسم التابع.
original_name
يعيد الاسم الأصلي للكائن Method
الذي استُدعي معه.
owner
يعيد الصنف أو الوحدة (module) التي تُعرِّف الكائن Method
الذي استُدعي معه.
parameters
يعيد معلومات عن معاملات الكائن Method
الذي استُدعي معه.
receiver
يعيد المستقبل المتلقي (bound receiver) للكائن Method
الذي استُدعي معه.
source_location
يعيد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي للتابعMethod
الذي استدعي معه، أو يعيد القيمة nil
إن لم يُعرّف هذا التابع في روبي (أي أنه أصلي).
super_method
يعيد كائنًا من النوع Method
للصنف الأب (superclass) للكائنMethod
الذي استدعي معه لاستدعائه عند استخدام super
، أو يعيد nil
إن لم يكن هناك تابع في الصنف الأب.
to_proc
يعيد الكائن Proc
المقابل للكائن Method
الذي استُدعي معه.
to_s
يعيد اسم التابع الأصلي (underlying method).
unbind
يفك ارتباط الكائن Method
الذي استُدعي معه من مُستقبِله (receiver) الحالي.