صفحة الصنف 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 Class Methods)
التابع ==
يكاون كائنان من النوع Method متساويين إن كانا مرتبطين بنفس الكائن، وكانا يشيران إلى نفس تعريف التابع، وكان لهما نفس الصنف أو الوحدة (module) المالكة.
التابع ===
يستدعي الكتلة مع تمرير المعامل obj
كوسيط لـ proc مثل Proc#call
. يسمح لكائن proc أن يكون هدفًا للكتلة when
في التعليمة case.
التابع []
يستدعي الكتلة البرمجية للتابع، ويضبط قيم وسائط الكتلة عند القيم المعطاة params باستخدام صياغة مشابهة لاستدعاء التوابع. يعيد قيمة آخر تعبير تم تقييمه في الكتلة.
التابع arity
يعيد مؤشرا لعدد الوسائط المقبولة من قبل التابع. يعيد عددًا صحيحًا غير سالب للتوابع التي تأخذ عددًا محددًا من الوسائطا. بالنسبة لتوابع روبي التي تأخذ عددًا متغيرًا من الوسائط، يًعاد العدد -n-1، حيث n هو عدد الوسائط المطلوبة. الوسائط المسماة (Keyword arguments) ستُعد وسيطاً إضافيًا واحدًا، وسيكون ذلك الوسيط إلزاميا إن كان أيٌّ من الوسائط المسماة كذلك. بالنسبة للتوابع المكتوبة بلغة C، سيُعاد العدد -1 إن كانت استدعاء تلك التوابع يأخذ عددًا متغيرًا من الوسائط.
التابع call
يستدعي كتلة التابع، ويضبط وسائط الكتلة عند القيم المعطاة params باستخدام صياغة مشابهة لصياغة استدعاء التوابع. ثم يعد قيمة آخر تعبير تم تقييمه في الكتلة.
التابع clone
يعيد نسخة من هذا التابع.
التابع curry
يعيد كتلة proc مُجزّءة (curried proc) انطلاقا من التابع الذي استُدعيت معه. عندما يكون عدد الوسائط الممررة إلى الكتلة proc أقل من رتبة (arity) التابع، فستعاد كتلة proc مجزءة أخرى. لن يُستدعى التابع فعليًا إلا عندما يتم توفير الوسائط الكافية لإمضاء (signature) التابع.
التابع eql?
يكون كائنان من النوع Method متساويتين إذا كانا مرتبطين بنفس الكائن، ويرجعان إلى نفس التعريف، وكانا مملوكين من قبل نفس الصنف أو الوحدة.
التابع hash
يعيد رمز التكويد (hash) المقابل لكائن Method الذي استُدعي معه.
التابع inspect
يعيد اسم التابع الأصلي (underlying method).
التابع name
يعيد اسم التابع.
التابع original_name
يعيد الاسم الأصلي للتابع الذي استُدعي معه.
التابع owner
يعيد الصنف أو الوحدة (module) التي تعرف التابع .
التابع parameters
يعيد معلومات عن وسائط التابع .
التابع receiver
يعيد المستقبل المتلقي (bound receiver) لكائن Method .
التابع source_location
يعيد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي هذا التابع، أو يعيد nil إن لم يُعرّف هذا التابع في روبي (أي أصلي).
التابع super_method
يعيد كائنا من النوع Method
للصنف الأب (superclass)، حتى يمكن استدعاؤه عند استخدام super، أو يعيد nil إن لم يكن هناك تابع في الصنف الأب.
التابع to_proc
يعيد الكائنً من النوع Proc
المقابل لهذا التابع.
التابع to_s
يعيد اسم التابع الأصلي (underlying method).
التابع unbind
يفك ارتباط تابع meth من مُستقبِله (receiver) الحالي. يمكن في وقت لاحق ربط UnboundMethod
مع كائن جديد من نفس الصنف (انظر UnboundMethod
).