الصنف 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) الحالي. 

مصادر