الفرق بين المراجعتين لصفحة: «Ruby/Proc/5B-5D»
أنشأ الصفحة ب'{{DISPLAYTITLE:المعامل <code>[]</code> في الصنف <code>Proc.call</code> في روبي}} يستدعي المعامل <code>[]</code> الكتلة المرت...' |
طلا ملخص تعديل |
||
| سطر 40: | سطر 40: | ||
== مصادر == | == مصادر == | ||
* [http://ruby-doc.org/core-2.5.1/Proc.html#method-i-5B-5D صفحة المعامل [] في الصنف Proc في توثيق روبي الرسمي.] | * [http://ruby-doc.org/core-2.5.1/Proc.html#method-i-5B-5D <nowiki>صفحة المعامل [] في الصنف Proc في توثيق روبي الرسمي.</nowiki>] | ||
[[تصنيف:Ruby]] | [[تصنيف:Ruby]] | ||
[[تصنيف:Ruby Operator]] | [[تصنيف:Ruby Operator]] | ||
[[تصنيف:Ruby Proc]] | [[تصنيف:Ruby Proc]] | ||
المراجعة الحالية بتاريخ 08:30، 26 نوفمبر 2018
يستدعي المعامل [] الكتلة المرتبطة بالمتغير الذي استعمل معه مُعيِّنًا معاملات الكتلة إلى القيم المعطاة ضمنه باستخدام شيءٍ مشابهٍ لدلالات استدعاء التابع. يُعيد المعامل قيمة آخر تعبيرٍ قُيِّم في الكتلة.
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]
لاحظ أنَّ ().prc يستدعي ()prc.call مع المعاملات المُمرَّرة إليه نفسها. يُعدُّ هذا تجميلًا لغويًّا (syntactic sugar) لإخفاء "call" فقط.
من أجل الكتل procs المُنشأة باستخدام lambda أو ()<-، يُرمى خطأٌ إذا مُرِّر عدد خطأ من المعاملات إلى الكتلة. وأمَّا من أجل الكتل procs المُنشأة باستخدام Proc.new أو Kernel.proc، يتم تجاهل المعاملات الزائدة الممرَّرة ضمنيًّا وتُعيَّن القيمة nil لكل معامل منها.
a_proc = proc {|a,b| [a,b] }
a_proc.call(1) #=> [1, nil]
a_proc = lambda {|a,b| [a,b] }
a_proc.call(1) # ArgumentError: wrong number of arguments (given 1, expected 2)
البنية العامة
prc[params,...] → obj
المعاملات
params
القيم التي ستُعيَّن إلى المعاملات ضمن الكتلة.
القيم المعادة
يُعاد الكائن الناتج عن استدعاء الكتلة وتنفيذها مع تمرير المعامل params إليها.
انظر أيضًا
- التابع
hash: يحسب قيمة التجزئة الموافقة لجسم الكتلةprocالتي استدعيت معه ثمَّ يعيدها. - التابع
?lambda: يتحقَّق إذا كانت معالجة الوسائط صارمةً في الكائنProc.
- التابع
to_proc: يُعدُّ جزءًا من البروتوكول المستخدم في تحويل الكائنات إلى كائناتٍ من الصنفProc.
- المعامل
===: يستدعي الكتلة بتمرير الكائن الواقع على يمينه كمعاملٍ للنسخةproc.