التابع ‎[]‎‎ الخاص بالصنف 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: يعيد مؤشرا لعدد الوسائط المقبولة من قبل التابع.

مصادر