التابع []
الخاص بالصنف Method
في روبي
يستدعي معامل الفهرسة[]
الكتلة البرمجية للتابع، ويضبط قيم وسائط الكتلة عند القيم المعطاة params
باستخدام صياغة مشابهة لاستدعاء التوابع. ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة.
لاحظ أن prc.()
يستدعي prc.call()
مع تمرير الوسائط المعطاة. وهي صياغة مختصرة لإخفاء التابع "call
".
بالنسبة للكائنات procs
التي تم إنشاؤها باستخدام lambda
أو ->()
، قسيُطلق خطأ إذا كان عدد الوسائط الممررة إلى proc
غير صحيح. بالنسبة لكائنات proc
التي تم إنشاؤها باستخدام Proc.new
أو Kernel.proc
، فسيتم تجاهل الوسائط الإضافية بصمت، وتُعطى للوسائط غير المُمررة القيمة nil
.
انظر أيضا Proc#lambda?
.
البنية العامة
prc[params,...] → obj
القيمة المُعادة
يعيد قيمة آخر تعبير تم تقييمه في الكتلة.
أمثلة
مثال على استخدام المعامل[]
:
a_proc = Proc.new {|scalar, *values| values.map {|value| value*scalar } }
a_proc.call(9, 1, 2, 3) #=> [9, 18, 27]
a_proc[9, 1, 2, 3] #=> [9, 18, 27]
a_proc.(9, 1, 2, 3) #=> [9, 18, 27]
a_proc.yield(9, 1, 2, 3) #=> [9, 18, 27]
انظر أيضا
- التابع
arity
: يعيد مؤشرا لعدد الوسائط المقبولة من قبل التابع. - التابع
call
: ييستدعيcall
كتلة التابع الذي استٌدعي معه، ويضبط وسائط الكتلة عند القيم المعطاةparams
باستخدام صياغة مشابهة لصياغة استدعاء التوابع. ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة.