في Elixir، لا يوجد وظيفة تسمى forEach
بالتحديد كما هو الحال في JavaScript. بدلاً من ذلك، يمكنك استخدام توالي الدوال المسمى Enum.each
لتحقيق نفس الغرض. تقوم هذه الوظيفة بتطبيق دالة معينة على كل عنصر في القائمة، ولكنها لا تقوم بإرجاع قيمة.
لنقم بإعادة السيناريو الذي ذكرته في JavaScript باستخدام Elixir. لنفترض أن لدينا قائمة من الأرقام تحتوي على [1, 2, 3]
، ونريد طباعة كل عنصر في القائمة:
-
كيفية فحص توجيه الجهاز في Swift12/03/2024
-
إزالة القيم NA في R03/03/2024
elixir[1, 2, 3] |> Enum.each(fn(num) -> IO.puts(num) end)
في هذا المثال، نستخدم Enum.each
لتمرير كل عنصر من القائمة إلى الدالة المعينة، والتي تقوم بطباعة كل عنصر باستخدام IO.puts
. الناتج سيكون مشابهًا لما تم ذكره في المثال الخاص بـ JavaScript:
1 2 3
يمكن أيضًا تحقيق نفس النتيجة باستخدام تفويض الدالة، الذي يقوم بتمرير العنصر كوسيلة للوصول إلى كل عنصر بداخل الدالة:
elixir[1, 2, 3] |> Enum.each(&IO.puts/1)
هذا الشكل يقوم بنفس العملية مثل الشكل السابق، حيث يتم طباعة كل عنصر في القائمة. يقوم الأمر &IO.puts/1
بإنشاء تفويض لدالة IO.puts
التي تأخذ واحدًا من الوسائط، وهو السبب في ظهور الرقم 1
ثم 2
وأخيرًا 3
في الإخراج.
باستخدام Enum.each
، يمكنك بسهولة تنفيذ الإجراءات على كل عنصر في القائمة بلغة Elixir، مما يسهل العمل مع البيانات بطريقة أكثر تعبيرية ووضوحًا.
المزيد من المعلومات
بالطبع، دعونا نواصل تطوير المقال لتشمل مزيدًا من التفاصيل حول كيفية استخدام Enum.each
في Elixir بالإضافة إلى بعض الأمثلة الإضافية وشرح حول الاستخدامات الشائعة لهذه الوظيفة.
استخدام Enum.each
في Elixir
وظيفة Enum.each
تعتبر واحدة من الوظائف الأساسية في Elixir وتُستخدم بشكل شائع لتطبيق عمليات على العناصر في القوائم. إليك بعض النقاط الرئيسية حول استخدامها:
- تمرير الدالة كوسيط: يُمكن تمرير دالة معينة إلى
Enum.each
، وسيُقوم هذا الدالة بتطبيقها على كل عنصر في القائمة. - تفويض الدالة: يُمكن استخدام تفويض الدالة
&
لإنشاء دالة مفوضة بسرعة لتمريرها إلىEnum.each
.
أمثلة إضافية
دعونا نلقي نظرة على بعض الأمثلة الإضافية لاستخدام Enum.each
في سياقات مختلفة:
تحويل قيم القائمة
يمكن استخدام Enum.each
لتحويل قيم القائمة إلى قيم جديدة باستخدام دالة محددة. على سبيل المثال، دعونا نقوم بضرب كل عنصر في القائمة بعدد محدد:
elixirlist = [1, 2, 3, 4] Enum.each(list, fn(x) -> IO.puts(x * 2) end)
مرشح العناصر
يُمكن استخدام Enum.each
لتطبيق مرشح على العناصر في القائمة واستبعاد العناصر التي لا تلبي الشرط. على سبيل المثال، دعونا نقوم بطباعة الأعداد الزوجية فقط من القائمة:
elixirlist = [1, 2, 3, 4] Enum.each(list, fn(x) -> if rem(x, 2) == 0, do: IO.puts(x) end)
الاستنتاج
في النهاية، استخدام Enum.each
في Elixir يوفر وسيلة فعالة لتطبيق العمليات على كل عنصر في القائمة. من خلال تمرير الدالة المناسبة، يمكنك تحقيق مجموعة متنوعة من الوظائف بسهولة وفعالية. تعتبر هذه الوظيفة جزءًا أساسيًا من أدوات البرمجة في Elixir وتساعد في تبسيط الشفرات وجعلها أكثر قابلية للصيانة والفهم.