التابع call
الخاص بالصنف Method
في روبي
يستدعي التابع call
كتلة التابع، ويضبط وسائط الكتلة عند القيم المعطاة params باستخدام صياغة مشابهة لصياغة استدعاء التوابع. ثم يعد قيمة آخر تعبير تم تقييمه في الكتلة.
لاحظ أن prc.()
يستدعي prc.call()
مع تمرير الوسائط المحددة. وهي صياغة مختصرة لإخفاء "call".
بالنسبة لكائنات procs الذي تم إنشاؤه باستخدام lambda
أو ->()
، قسيُطلق خطأ إذا كان عدد الوسائط الممررة إلى proc غير مناسب. بالنسبة لكائنات proc التي تم إنشاؤها باستخدام Proc.new
أو Kernel.proc
، يتم تجاهل الوسائط الإضافية بصمت، وتُعطى للوسائط غير المُمررة القيمة nil
.
انظر أيضا صفحة Proc#lambda?
.
البنية العامة
call(params,...)→ obj
المعاملات
params
...
القيمة المُعادة
أمثلة
مثال على استخدام التابع call
:
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
: يعيد مؤشرا لعدد الوسائط المقبولة من قبل التابع. يعيد عددًا صحيحًا غير سالب للتوابع التي تأخذ عددًا محددًا من الوسائطا. بالنسبة لتوابع روبي التي تأخذ عددًا متغيرًا من الوسائط، يًعاد العدد -n-1، حيث n هو عدد الوسائط المطلوبة. الوسائط المسماة (Keyword arguments) ستُعد وسيطاً إضافيًا واحدًا، وسيكون ذلك الوسيط إلزاميا إن كان أيٌّ من الوسائط المسماة كذلك. بالنسبة للتوابع المكتوبة بلغة C، سيُعاد العدد -1 إن كانت استدعاء تلك التوابع يأخذ عددًا متغيرًا من الوسائط. - التابع
clone
: يعيد نسخة من هذا التابع.