الصنف Proc في روبي

من موسوعة حسوب

كائنات الصنف Proc هي كتلٌ من الشيفرات البرمجية رُبطت إلى مجموعة من المتغيرات المحليَّة. حالما تُربط، يمكن استدعاء الشيفرة في سياقات مختلفة ويبقى الوصول متاحًا لتلك المتغيرات.

def gen_times(factor)
  return Proc.new {|n| n*factor }
end

times3 = gen_times(3)
times5 = gen_times(5)

times3.call(12)               #=> 36
times5.call(5)                #=> 25
times3.call(times5.call(4))   #=> 60

توابع الصنف العامة (Public Class Methods)

new

يُنشئ التابع new كائنًا جديدًا من الصنف Proc، ويربطه إلى السياق الحالي.

توابع النسخة العامة (Public Instance Methods)

===

يستدعي الكتلة (block) بتمرير الكائن الواقع على يمينه كمعاملٍ للنسخة proc بشكلٍ مشابهٍ للتابع Proc.call.

[]

يستدعي الكتلة المرتبطة بالمتغير الذي استعمل معه مُعيِّنًا معاملات الكتلة إلى القيم المعطاة ضمنه باستخدام شيءٍ مشابهٍ لدلالات استدعاء التابع. يُعيد المعامل قيمة آخر تعبيرٍ قُيِّم في الكتلة.

arity

يُعيد عدد الوسائط الإلزاميَّة في الكائن proc الذي استدعي معه.

binding

يُعيد الرَّبط (binding) الموافق للكائن Proc الذي استدعي معه.

call

يستدعي الكتلة المرتبطة بالمتغير الذي استعمل معه مُعيِّنًا معاملات الكتلة إلى القيم المعطاة ضمنه باستخدام شيءٍ مشابهٍ لدلالات استدعاء التابع. يُعيد المعامل قيمة آخر تعبيرٍ قُيِّم في الكتلة.

curry

يُعي كتلة proc مقسَّمة (curried).

hash

يحسب قيمة التجزئة (hash value) الموافقة لجسم الكتلة proc التي استدعيت معه ثمَّ يعيدها.

inspect

يُعدُّ اسمًا بديلًا (alias) للتابع to_s.

?lambda

يتحقَّق إذا كانت معالجة الوسائط صارمةً في الكائن Proc.

parameters

يُعيد معلوماتٍ عن معاملات كتلة محدَّدة من النوع proc.

source_location

يُعيد اسم ملف روبي المصدري ورقم السَّطر الحاوي على كتلة proc محدَّدة.

to_proc

يُعدُّ جزءًا من البروتوكول المستخدم في تحويل الكائنات إلى كائناتٍ من الصنف Proc.

to_s

يُعيد المُعرِّف الفريد (unique identifier) لكتلة proc محدّدة بالتزامن مع إشارة لمكان تعريف هذه الكتلة.

yield

يستدعي الكتلة المرتبطة بالمتغير الذي استعمل معه مُعيِّنًا معاملات الكتلة إلى القيم المعطاة ضمنه باستخدام شيءٍ مشابهٍ لدلالات استدعاء التابع. يُعيد المعامل قيمة آخر تعبيرٍ قُيِّم في الكتلة.

ملاحظات إضافيَّة

العديد من التوابع التي يستخدمها المبرمجون مع كتل proc (مثل call) تأتي من الصّنف Method.

إذا لم تجد ما تبحث عنه في توثيق الصنف Proc، فابحث في توثيق الصنف Method.

مصادر