الفرق بين المراجعتين ل"Ruby/Array/assign operator"

من موسوعة حسوب
< Ruby‏ | Array
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: معامل التعيين [] الخاص بالصنف Array في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method ...')
 
ط
 
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: معامل التعيين [] الخاص بالصنف Array في روبي}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: معامل التعيين <code>[]</code> الخاص بالصنف <code>Array</code> في روبي}}</noinclude>
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
+
[[تصنيف: Ruby Operator]]
 
[[تصنيف: Ruby Array]]
 
[[تصنيف: Ruby Array]]
يعيّن المعامل [] قيمة عنصر ذي فهرس محدد، أو قيم عدة عناصر تبدأ عند عنصر محدد وتمتد عددًا محددًا من العناصر، أو قيم عدة عناصر موجودة عند مجال محدد في مصفوفة.
+
يعيّن المعامل <code>[]</code> قيمة عنصر ذي فهرس محدد، أو قيم عدة عناصر تبدأ عند عنصر محدد وتمتد عددًا محددًا من العناصر، أو قيم عدة عناصر موجودة عند مجال محدد في مصفوفة.
إن كانت الفهارس تشير إلى عناصر تقع خارج نطاق المصفوفة المعطاة، فستُوسَّع المصفوفة تلقائيًا. تُدرج العناصر في المصفوفة عند الفهرس <code>start</code> إن كانت قيمة الوسيط [[Ruby/Array/length | <code>length</code>]] تساوي 0.
+
 
إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع العنصر بدءًا من نهاية المصفوفة، إذ تمثِّل القيمة ‎-1 فهرس العنصر الأخير. بالنسبة للوسيطين <code>start</code> و <code>range</code>، يكون فهرس البداية قبل العنصر.
+
إن كانت الفهارس تشير إلى عناصر تقع خارج نطاق المصفوفة المعطاة، فستُوسَّع المصفوفة تلقائيًا. تُدرج العناصر في المصفوفة عند الفهرس <code>start</code> إن كانت قيمة الوسيط <code>length</code> تساوي 0.
 +
 
 +
إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع العنصر بدءًا من نهاية المصفوفة، إذ تمثِّل القيمة <code>‎-1</code> فهرس العنصر الأخير. بالنسبة للوسيطين <code>start</code> و <code>range</code>، يكون فهرس البداية قبل العنصر.
 +
 
 
سيُطلق الخطأ <code>IndexError</code> في حالة تجاوز الفهرس السالب المعطى بداية المصفوفة.
 
سيُطلق الخطأ <code>IndexError</code> في حالة تجاوز الفهرس السالب المعطى بداية المصفوفة.
 
==البنية العامة==
 
==البنية العامة==
سطر 13: سطر 16:
 
  </syntaxhighlight>
 
  </syntaxhighlight>
 
==المعاملات==
 
==المعاملات==
[[Ruby/Array/index | <code>index</code>]]
+
 
 +
=== <code>index</code> ===
 
عدد صحيح يمثل فهرس العنصر المراد تعيين قيمته في المصفوفة المعطاة.
 
عدد صحيح يمثل فهرس العنصر المراد تعيين قيمته في المصفوفة المعطاة.
<code>start</code>
+
 
 +
=== <code>start</code> ===
 
عدد صحيح يمثل فهرس البداية للعناصر المراد تعيين قيمتها في المصفوفة المعطاة.
 
عدد صحيح يمثل فهرس البداية للعناصر المراد تعيين قيمتها في المصفوفة المعطاة.
[[Ruby/Array/length | <code>length</code>]]
+
 
 +
=== <code>length</code> ===
 
عدد صحيح يمثل طول العناصر المراد تعيين قيمتها في المصفوفة المعطاة.
 
عدد صحيح يمثل طول العناصر المراد تعيين قيمتها في المصفوفة المعطاة.
<code>range</code>
+
 
 +
=== <code>range</code> ===
 
مجال يحدد فهرس البداية وفهرس النهاية لمجال العناصر المراد تعيين قيمتها في المصفوفة المعطاة.
 
مجال يحدد فهرس البداية وفهرس النهاية لمجال العناصر المراد تعيين قيمتها في المصفوفة المعطاة.
 
==أمثلة==
 
==أمثلة==
بعض الأمثلة لاستخدام معامل التعيين []:
+
بعض الأمثلة لاستخدام معامل التعيين <code>[]</code>:
 
<syntaxhighlight lang="ruby"> a = Array.new
 
<syntaxhighlight lang="ruby"> a = Array.new
 
a[4] = "4";                #=> [nil, nil, nil, nil, "4"]
 
a[4] = "4";                #=> [nil, nil, nil, nil, "4"]
سطر 36: سطر 43:
 
  </syntaxhighlight>
 
  </syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
* معامل الفهرسة []: يجلب عنصرًا ذي فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من مصفوفة.
+
* معامل الفهرسة <code>[[Ruby/Array/index operator|[]]]</code>: يجلب عنصرًا ذي فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من مصفوفة.
* التابع [[Ruby/Array/push | <code>push</code>]]: يضيف جميع الكائنات المُمرّرة إليه إلى نهاية المصفوفة التي استُدعيت معه.
+
* التابع<nowiki/>[[Ruby/Array/push | <code>push</code>]]: يضيف جميع الكائنات المُمرّرة إليه إلى نهاية المصفوفة التي استُدعيت معه.
* التابع [[Ruby/Array/shift | <code>shift</code>]]: يحذف أول عنصر أو أول <code>n</code> عنصر من عناصر مصفوفة ثم يعيده أو يعيد مصفوفة تحوي العناصر المحذوفة.
+
* التابع<nowiki/>[[Ruby/Array/shift | <code>shift</code>]]: يحذف أول عنصر أو أول <code>n</code> عنصر من عناصر مصفوفة ثم يعيده أو يعيد مصفوفة تحوي العناصر المحذوفة.
* التابع !<code>!map</code>: يستدعي كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة ثمَّ يضع القيمة التي أعادتها تلك الكتلة مكان العنصر الذي طُبِّقَت عليه.
+
* التابع <code>[[Ruby/Array/!map|!map]]</code>: يستدعي كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة ثمَّ يضع القيمة التي أعادتها تلك الكتلة مكان العنصر الذي طُبِّقَت عليه.
 
==مصادر==
 
==مصادر==
* قسم المعامل [] في الصنف Array في توثيق روبي الرسمي.
+
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-5B-5D-3D <nowiki>قسم المعامل [] في الصنف Array في توثيق روبي الرسمي.</nowiki>]

المراجعة الحالية بتاريخ 06:24، 2 أكتوبر 2018

يعيّن المعامل [] قيمة عنصر ذي فهرس محدد، أو قيم عدة عناصر تبدأ عند عنصر محدد وتمتد عددًا محددًا من العناصر، أو قيم عدة عناصر موجودة عند مجال محدد في مصفوفة.

إن كانت الفهارس تشير إلى عناصر تقع خارج نطاق المصفوفة المعطاة، فستُوسَّع المصفوفة تلقائيًا. تُدرج العناصر في المصفوفة عند الفهرس start إن كانت قيمة الوسيط length تساوي 0.

إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع العنصر بدءًا من نهاية المصفوفة، إذ تمثِّل القيمة ‎-1 فهرس العنصر الأخير. بالنسبة للوسيطين start و range، يكون فهرس البداية قبل العنصر.

سيُطلق الخطأ IndexError في حالة تجاوز الفهرس السالب المعطى بداية المصفوفة.

البنية العامة

 ary[index] = obj  obj
ary[start, length] = obj or other_ary or nil  obj or other_ary or nil
ary[range] = obj or other_ary or nil  obj or other_ary or nil

المعاملات

index

عدد صحيح يمثل فهرس العنصر المراد تعيين قيمته في المصفوفة المعطاة.

start

عدد صحيح يمثل فهرس البداية للعناصر المراد تعيين قيمتها في المصفوفة المعطاة.

length

عدد صحيح يمثل طول العناصر المراد تعيين قيمتها في المصفوفة المعطاة.

range

مجال يحدد فهرس البداية وفهرس النهاية لمجال العناصر المراد تعيين قيمتها في المصفوفة المعطاة.

أمثلة

بعض الأمثلة لاستخدام معامل التعيين []:

 a = Array.new
a[4] = "4";                 #=> [nil, nil, nil, nil, "4"]
a[0, 3] = [ 'a', 'b', 'c' ] #=> ["a", "b", "c", nil, "4"]
a[1..2] = [ 1, 2 ]          #=> ["a", 1, 2, nil, "4"]
a[0, 2] = "?"               #=> ["?", 2, nil, "4"]
a[0..2] = "A"               #=> ["A", "4"]
a[-1]   = "Z"               #=> ["A", "Z"]
a[1..-1] = nil              #=> ["A", nil]
a[1..-1] = []               #=> ["A"]
a[0, 0] = [ 1, 2 ]          #=> [1, 2, "A"]
a[3, 0] = "B"               #=> [1, 2, "A", "B"]

انظر أيضًا

  • معامل الفهرسة []: يجلب عنصرًا ذي فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من مصفوفة.
  • التابع push: يضيف جميع الكائنات المُمرّرة إليه إلى نهاية المصفوفة التي استُدعيت معه.
  • التابع shift: يحذف أول عنصر أو أول n عنصر من عناصر مصفوفة ثم يعيده أو يعيد مصفوفة تحوي العناصر المحذوفة.
  • التابع !map: يستدعي كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة ثمَّ يضع القيمة التي أعادتها تلك الكتلة مكان العنصر الذي طُبِّقَت عليه.

مصادر