كيفية إنشاء مصفوفة متعددة الأبعاد في روبي

كيفية إنشاء مصفوفة متعددة الأبعاد في روبي. على الرغم من أن Ruby لا تقدم دعمًا صريحًا للمصفوفات متعددة الأبعاد ، إلا أنه يمكنك تنفيذ أحدها بنفسك إذا كانت لديك معرفة أساسية باللغة. يجب عليك في جوهرها إنشاء "مصفوفة من المصفوفات" حيث يحتوي كل عنصر من المصفوفة على مصفوفة أخرى. لإنشاء مثل هذه المصفوفة متعددة الأبعاد في Ruby ، ​​يمكنك كتابة طريقة مستخدمة لإنشاء مصفوفات من المصفوفات بحيث لا يلزم تكرار الكود.

أنشئ مصفوفة متعددة الأبعاد في روبي

الخطوة 1

اكتب الهيكل العام للطريقة. ستأخذ هذه الطريقة عددًا من وسيطات الأبعاد وتعيد مصفوفة فارغة متعددة الأبعاد لتلك الأبعاد. على سبيل المثال ، لمصفوفة 10x10 ، استدع هذه الطريقة mda (10،10): def mda (العرض ، الارتفاع) end

فيديو اليوم

الخطوة 2

قم بإنشاء مصفوفة من عناصر العرض.

الخطوه 3

أنشئ مصفوفة من عناصر الارتفاع لكل عنصر في المصفوفة. هذا يجعل "مصفوفة المصفوفات" التي سيتم استخدامها كمصفوفة ثنائية الأبعاد. لإنشاء مصفوفات فارغة بطول معين ، استخدم المُنشئ Array.new بالطول كوسيطة. في البداية ، ستكون جميع القيم في المصفوفة صفرية.

الخطوة 4

استخدم الخريطة! الطريقة كذلك. الخريطة! تقوم الطريقة بتكرار كل عنصر في المصفوفة ، وتقوم بتشغيل كتلة لكل عنصر وتعيين نتيجة الكتلة إلى عنصر المصفوفة. يمكن تحقيق نفس النتيجة باستخدام حلقة for ، لكن الخريطة! الطريقة أكثر إيجازًا: def mda (العرض ، الارتفاع) a = Array.new (العرض) a.map! {Array.new (height)} إرجاع aend

الخطوة الخامسة

استخدم هذه المصفوفة مع عامل التشغيل المنخفض (الأقواس المربعة []). على سبيل المثال ، إذا كان لديك مصفوفة 10x10 تسمى "a" وأردت العنصر 7،3 ، يمكنك أن تقول [7] [3]: a = mda (10،10) # املأ المصفوفة بالقيم a [7] [5] = "سلسلة" a [2] [9] = 23 # استرداد القيم ينتج a [7] [5] يضع [2] [9]

الخطوة 6

استفد من القدرة على "سلسلة" استدعاءات الطريقة في Ruby. على سبيل المثال ، ترجع طريقة Array.new مصفوفة. يمكنك ربط استدعاء عملية أخرى بهذا لاستدعاء عملية على المصفوفة المرتجعة. نظرًا لأنك تقوم بتسلسل العمليات ، ولا تستخدم تعليمة إرجاع ، فلن تحتاج إلى اسم المتغير أيضًا: def mda (العرض ، الارتفاع) Array.new (width) .map! {Array.new (height)} end

نصيحة

روبي معبرة جدا. يمكن أن تكون طريقة MDA عبارة عن سطر واحد قصير وموجز من التعليمات البرمجية. تجعل الأسطر والكلمات الرئيسية الإضافية التعليمات البرمجية تبدو أكثر تعقيدًا مما هي عليه بالفعل. بيان الإرجاع ليس ضروريًا في روبي. تعيد طرق وكتل روبي تلقائيًا نتيجة آخر جملة تم تنفيذها في الطريقة أو الكتلة.