الفرق بين المراجعتين لصفحة: «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
.