Blackhacker نشر 10 ديسمبر 2015 أرسل تقرير نشر 10 ديسمبر 2015 قمت بتجربة استخدام each وcollect على نفس المثال كالتالي:a = ["L","Z","J"].collect{|x| puts x.succ} #=> M AA K print a.class #=> Array b = ["L","Z","J"].each{|x| puts x.succ} #=> M AA K print b.class #=> Arrayوكما ترون لا يوجد فرق بين هذين المثالين على الرغم من استعمالي لتوابع مختلفة فهل يوجد فرق بين each وcollect في روبي؟ اقتباس
0 هشام رزق الله نشر 10 ديسمبر 2015 أرسل تقرير نشر 10 ديسمبر 2015 هنالك فرق بسيط بين هاتين الطريقتين في التكرار في روبي فـ each تأخذ المصفوفة وتطبّق عليها الكتلة المقدمة لها على جميع العناصر دون أن تنشئ أي كائن جديد، فهي فقط تكرر على العناصر ومن ثم تُرجع نفسها.أما بالنسبة إلى collect فهي تشبه map كثيرا وتطبّق الكتلة المقدمة التي تحتوي على الأوامر على جميع عناصر المصفوفة ومن ثم تُرجع مصفوفة جديدة.لتفهم بشكل أفضل أنظر للمثال التالي: a = ["L","Z","J"].collect{|x| puts x.succ} #=> M AA Kبعد تنفيذ هذا السطر ستبقى a مصفوفة لكنها ستحتوي على [nil,nil,nil] على الرغم من أنها طبعت المطلوب.أما في هذا المثال: b = ["L","Z","J"].each{|x| puts x.succ} #=> M AA Kفستحتفظ b بقيمتها الابتدائية. اقتباس
السؤال
Blackhacker
قمت بتجربة استخدام each وcollect على نفس المثال كالتالي:
وكما ترون لا يوجد فرق بين هذين المثالين على الرغم من استعمالي لتوابع مختلفة فهل يوجد فرق بين each وcollect في روبي؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.