Ruby

كيفية التعامل مع “المصفوفات” Arrays في Ruby

كُتب بواسطة علي حمدي

تعاملت في الموضوع السابق مع المتغيرات في “روبي” Ruby، عرفت أيضًا أنه يوجد العديد من أنواع المتغيرات في Ruby كما في لغات البرمجة الأخرى، ومن أهمها “المصفوفاتArrays.

البعض يعتقد أن المصفوفات في Ruby تتشابه مع باقي المصفوفات في لغات البرمجة الأخرى، هذا الأمر خاطئ إلى حدٍ ما، والسبب أنه في لغات البرمجة الأخرى عند إنشاء مصفوفة جديدة يجب أن تحتفظ داخلها إما بقيم عددية أو نصّية أو أي نوع من أنواع البيانات التي يجب أن تكون كلها من نوع واحد، أما في Ruby فهذا الأمر مختلف تمامًا، حيث أنه يمكنك إنشاء مصفوفات تحتفظ بداخلها على قيم عددية ونصية ومصفوفات أخرى داخل نفس المصفوفة؛ على عكس باقي اللغات!

إنشاء مصفوفة من الأرقام وطباعة محتوياتها:

من أبسط الأشياء التي يمكن القيام بها في Ruby هو إنشاء المصفوفات، في البرنامج التالي سنقوم بإنشاء مصفوفة تحتوي على الأرقام من 0 إلى 9 ونطبع محتوياتها بالترتيب:

  • قم بفتح محرر النصوص المفضل لديك.
  • قم بكتابة الشفرة التالية داخله:
  • قم بحفظ الملف بأي اسم تحب، المهم أن ينتهي بامتداد .rb، على سبيل المثال arrays.rb.
  • قم بفتح Terminal على نظام التشغيل الذي تعمل عليه وتوجه إلى مسار وجود الملف باستخدام أمر cd وقم بتشغيل الملف باستخدام الأمر ruby متبوع باسم الملف.

الناتج الذي ظهر أمامك هو محتوى المصفوفة بالتأكيد، في السطر الأول من البرنامج السابق قمنا بتعريف متغير keefcode وأسندنا له مصفوفة من القيم، بهذا الشكل يتم تعريف المصفوفات الجديدة (توجد طرق أخرى لكن هذه أسهلها)، وبعد ذلك قمنا بطباعة محتوى المصفوفة keefcode باستخدام الدالة puts وهي تقوم بطباعة كل عناصر المصفوفة متبوعة بسطر جديد، وإذا حاولت طباعة محتويات المتغير keefcode باستخدام الدالة print ستحصل على شكل المصفوفة الذي كتبته أنت في الشفرة البرمجية الخاصه بك (قم بتجربة ذلك).

تنفيذ عمليات على عناصر المصفوفة قبل طباعتها:

ماذا لو أردنا تنفيذ عملية على المصفوفة قبل طباعتها؟ في البرنامج التالي سنقوم بإضافة الرقم 1 لكل رقم داخل المصفوفة بعد ذلك سنطبع الناتج.

  • قم بفتح محرر النصوص المفضل لديك.
  • قم بكتابة الشفرة التالية داخله:
  • قم بحفظ الملف بأي اسم تحب، المهم أن ينتهي بامتداد .rb، على سبيل المثال each_array_element.rb.
  • قم بفتح Terminal على نظام التشغيل الذي تعمل عليه وتوجه إلى مسار وجود الملف باستخدام أمر cd وقم بتشغيل الملف باستخدام الأمر ruby متبوع باسم الملف.

الناتج الذي ستتحصل عليه هو كل عنصر داخل المصفوفة مضاف إلى قيمته الرقم 1، يعني تم طباعة الأرقام من 1 إلى 10، لكن ما هي each التي استخدمناها في البرنامج السابق؟ each هي دالة معرفة في اللغة تستخدم مع المصفوفات، وظيفتها تنفيذ الشفرة البرمجية المرسلة لها بين do-end على عدد عناصر المصفوفة.

في البرنامج السابق عدد عناصر المصفوفة كان 10 عناصر، فقامت الدالة each بإعادة تنفيذ الشفرة البرمجية الموجودة بين do-end عدد 10 مرات، وتعطيك الدالة each أيضًا إمكانية استخدام كل عنصر داخل المصفوفة أثناء تنفيذ الشفرة المرسلة لها، حيث يتم استقبال كل عنصر داخل المتغير arr_element الموجود بين علامتي || (يمكنك تسمية المتغير الذي تُستقبل داخله عناصر المصفوفة بالاسم الذي تحب) وبعد ذلك يمكنك استخدام arr_element داخل الشفرة البرمجية الموجودة بين do-end.

لاحظ أنه أي عمليات تقوم بها على قيم عناصر المصفوفة داخل شفرة الدالة each لا تؤثر بشكل مباشر على القيمة الموجودة داخل كل عنصر، فإذا قمت بإضافة السطر أدناه إلى البرنامج السابق وأعدت التنفيذ، ستجد أن ما تم طباعته من قِبل الدالة each يختلف تمامًا عن ما تم طباعته من قِبل السطر الجديد.

هذا يعني أن الدالة each لا تؤثر على قيم عناصر المصفوفة، فهي فقط تقوم بإعطائك إمكانية استخدام هذه القيم.

تحدثنا في بداية هذا الموضوع عن قوة Ruby في التعامل مع المصفوفات والاحتفاظ بداخلها على أنواع مختلفة من البيانات، يمكنك تجربة ذلك بنفسك، وسنتطرق إلى ذلك في المواضيع القادمة.

عن الكاتب

علي حمدي

مبرمج ومطور ويب، بدأ البرمجة منذ عام 2011، صاحب موقع روبي عربي، أول موقع عربي يشرح لغة البرمجة Ruby في المحتوى العربي بشكل مفصل.

تعليق واحد

اترك تعليقًا