التابع Array.fill في روبي

من موسوعة حسوب
< Ruby‏ | Array
مراجعة 07:16، 2 أكتوبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يضبط التابع fill قيم عناصر محدَّدة أو جميع عناصر مصفوفة إلى القيمة الممرَّرة إليه (الأشكال الثلاث الأولى للتابع في قسم «البنية العامة»)، أو القيم التي تعيدها الكتلة البرمجية الممرَّرة إليه (الأشكال الثلاث المتبقية).

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

 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

عدد صحيح يمثل فهرس العنصر المراد استبدال قيمته أو بداية العناصر المراد استبدال قيمتها. إن كانت قيمة هذا المعامل سالبة، فسيحسب موضع العنصر بدءًا من نهاية المصفوفة.

إن أعطيت القيمة nil للوسيط start، فذلك يكافئ تمرير القيمة 0 لهذا الوسيط. وفي حال كانت قيمة الوسيط start سالبة، فسيُحسَب موضع كل عنصر يراد تبديل قيمته بدءًا من نهاية المصفوفة.

length

عدد صحيح يمثل طول العناصر المراد استبدال قيمتها. في حال إعطاء القيمة nil للوسيط 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.

مصادر