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

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

يستخرج التابع dig العنصر المتشعِّب (nested value) المحدَّد بسلسلة المعاملات الممرَّرة إليه من مصفوفة متعددة الأبعاد وذلك عبر استدعاء dig عند كل مستوى تشعب.

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

 dig(idx, ...)  object

المعاملات

idx

عدد صحيح يمثل فهرسًا يشير إلى عنصر محدد (مصفوفة فرعية) من المصفوفة الخارجية.

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

القيم المعادة

يعاد كائن يمثِّل العنصر المتشعِّب (nested value) المحدَّد بسلسلة الوسائط idx الممرَّرة، أو تعاد القيمة nil إن أعطى أي مستوى وسطي (intermediate step) القيمة nil.

أمثلة

بعض الأمثلة على استخدام التابع dig:

 a = [[1, [2, 3]]]

a.dig(0, 1, 1)                    #=> 3
a.dig(1, 2, 3)                    #=> nil
a.dig(0, 0, 0)                    #=> TypeError: Integer does not have #dig method
[42, {foo: :bar}].dig(1, :foo)    #=> :bar

انظر أيضًا

  • التابع at: يجلب عنصرًا ذي فهرس محدد من المصفوفة المستدعاة معه.
  • التابع flatten: يجعل المصفوفة التي تحوي عناصر متشعبة ضمنها مصفوفةً أحادية البعد بشكل تعاودي (recursively).
  • معامل الفهرسة []: يجلب عنصرًا ذي فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من مصفوفة.

مصادر