الفرق بين المراجعتين لصفحة: «Ruby/Method/index»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: | <noinclude>{{DISPLAYTITLE: المعامل <code>[]</code> الخاص بالصنف <code>Method</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby | [[تصنيف: Ruby Operator]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method Class]] | ||
يستدعي معامل الفهرسة<code>[]</code> الكتلة البرمجية للتابع، ويضبط قيم | يستدعي معامل الفهرسة <code>[]</code> الكتلة البرمجية للتابع، ويضبط قيم معاملات الكتلة عند القيم المعطاة ضمنه باستخدام صياغة مشابهة لاستدعاء التوابع ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة. | ||
لاحظ | لاحظ أنَّ <code>prc.()</code> يستدعي <code>prc.call()</code> مع تمرير الوسائط المعطاة. وهي صياغة مختصرة لإخفاء التابع "<code>call</code>". | ||
بالنسبة للكائنات <code>procs</code> التي تم إنشاؤها باستخدام <code>lambda</code> أو <code>->()</code>، | بالنسبة للكائنات <code>procs</code> التي تم إنشاؤها باستخدام <code>lambda</code> أو <code>->()</code>، سيُطلق خطأ إذا كان عدد المعاملات الممررة إلى <code>proc</code> غير صحيح. بالنسبة للكائنات <code>proc</code> التي تم إنشاؤها باستخدام <code>[[Ruby/Proc/new|Proc.new]]</code> أو <code>[[Ruby/Kernel/proc|Kernel.proc]]</code>، سيتم تجاهل المعاملات الإضافية بصمت، وتُعطى للمعاملات غير المُمررة القيمة <code>nil</code>. | ||
انظر أيضا <code>[[Ruby/Proc/lambda-3F|Proc | انظر أيضا <code>[[Ruby/Proc/lambda-3F|Proc.lambda?]]</code>. | ||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">prc[params,...] → obj</syntaxhighlight> | <syntaxhighlight lang="ruby">prc[params,...] → obj</syntaxhighlight> | ||
==القيمة | ==القيمة المعادة== | ||
تعاد قيمة آخر تعبير تم تقييمه في الكتلة. | |||
==أمثلة== | ==أمثلة== | ||
مثال على استخدام المعامل<code>[]</code>: | مثال على استخدام المعامل<code>[]</code>:<syntaxhighlight lang="ruby">a_proc = Proc.new {|scalar, *values| values.map {|value| value*scalar } } | ||
<syntaxhighlight lang="ruby">a_proc = Proc.new {|scalar, *values| values.map {|value| value*scalar } } | |||
a_proc.call(9, 1, 2, 3) #=> [9, 18, 27] | 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] | ||
سطر 23: | سطر 21: | ||
a_proc.yield(9, 1, 2, 3) #=> [9, 18, 27]</syntaxhighlight> | a_proc.yield(9, 1, 2, 3) #=> [9, 18, 27]</syntaxhighlight> | ||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/Method/arity|arity]]</code>: يعيد | *التابع <code>[[Ruby/Method/arity|arity]]</code>: يعيد مؤشرًا لعدد المعاملات المقبولة من قبل التابع. | ||
* التابع <code>[[Ruby/Method/call|call]]</code>: | *التابع <code>[[Ruby/Method/call|call]]</code>: يستدعي كتلة التابع الذي استٌدعي معه، ويضبط معاملات الكتلة عند القيم المعطاة باستخدام صياغة مشابهة لصياغة استدعاء التوابع ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Method.html#method-i-5B-5D <nowiki>قسم | *[http://ruby-doc.org/core-2.5.1/Method.html#method-i-5B-5D <nowiki>قسم المعامل [] في الصنف Method في توثيق روبي الرسمي.</nowiki>] |
المراجعة الحالية بتاريخ 05:17، 18 نوفمبر 2018
يستدعي معامل الفهرسة []
الكتلة البرمجية للتابع، ويضبط قيم معاملات الكتلة عند القيم المعطاة ضمنه باستخدام صياغة مشابهة لاستدعاء التوابع ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة.
لاحظ أنَّ 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
: يستدعي كتلة التابع الذي استٌدعي معه، ويضبط معاملات الكتلة عند القيم المعطاة باستخدام صياغة مشابهة لصياغة استدعاء التوابع ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة.