التابع Array.fill
في روبي
يضبط التابع fill
قيم عناصر محدَّدة أو جميع عناصر مصفوفة إلى القيمة الممرَّرة إليه (الأشكال الثلاث الأولى للتابع في قسم «البنية العامة»)، أو القيم التي تعيدها الكتلة البرمجية الممرَّرة إليه (الأشكال الثلاث المتبقية).
إن أعطيت القيمة nil
للوسيط start
، فذلك يكافئ تمرير القيمة 0
لهذا الوسيط. وفي حال إعطاء القيمة nil
للوسيط length
، فذلك يكافئ تمرير طول المصفوفة المعطاة.
في حال كانت قيمة الوسيط start
سالبة، فسيُحسَب موضع كل عنصر يراد تبديل قيمته بدءًا من نهاية المصفوفة.
البنية العامة
fill(obj) → ary
fill(obj, start [, length]) → ary
fill(obj, range ) → ary
fill { |index| block } → ary
fill(start [, length] ) { |index| block } → ary
fill(range) { |index| block } → ary
المعاملات
obj
الكائن المراد أن يحل مكان عناصر محددة (باستعمال المعاملات start
و length
و rang
) في المصفوفة المعطاة.
start
عدد صحيح يمثل فهرس العنصر المراد استبدال قيمته أو بداية العناصر المراد استبدال قيمتها. إن كانت قيمة هذا المعامل سالبة، فسيحسب موضع العنصر بدءًا من نهاية المصفوفة.
length
عدد صحيح يمثل طول العناصر المراد استبدال قيمتها.
rang
مجالٌ يحدد بداية ونهاية العناصر المراد استبدال قيمتها.
القيم المعادة
تعاد المصفوفة نفسها بعد تبديل قيمة الوسيط obj
أو القيم التي تعيدها الكتلة block
(التي يُمرَّر إليها قيمة فهرس العنصر المستهدف) مكان جميع عناصر المصفوفة المعطاة إن لم يمرَّر أي وسيط آخر، أو بدءًا من العنصر ذي الفهرس start
وحتى العنصر ذي الفهرس length
، أو مكان العناصر الواقعة ضمن المجال rang
.
أمثلة
أمثلة على استخدام التابع fill
:
a = [ "a", "b", "c", "d" ]
a.fill("x") #=> ["x", "x", "x", "x"]
a.fill("z", 2, 2) #=> ["x", "x", "z", "z"]
a.fill("y", 0..1) #=> ["y", "y", "z", "z"]
a.fill { |i| i*i } #=> [0, 1, 4, 9]
a.fill(-2) { |i| i*i*i } #=> [0, 1, 8, 27]
انظر أيضًا
- التابع
map
: يستدعي كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة ثمَّ يضع الناتج الذي تعيده هذه الكتلة لكل عنصر في مصفوفة جديدة وتعيدها. - التابع
!collect
: يستدعي كتلة برمجية محددة مع كل عنصر من عناصر مصفوفة ثم يضع القيمة التي أعادتها تلك الكتلة مكان العنصر الذي استدعيت معه. - التابع
cycle
: يستدعي كتلة برمجية محددة مع كل عنصر من عناصر المصفوفة عددًا محددًا من المرات أو عددًا لا نهائيًّا من المرات إن أعطيت القيمةnil
.