साइड इफेक्ट ही जो अपने रिवर्स इंजीनियरिंग करने के लिए कुछ भ्रम जोड़ रहा है कर रहे हैं।
हां, सरणी पर दोनों पुनरावृति (वास्तव में, कुछ भी जो एनुमेरबल में मिक्स करता है ) लेकिन नक्शा एक सरणी को ब्लॉक परिणामों से बना देगा, जबकि प्रत्येक मूल सरणी को वापस कर देगा।
के रिटर्न मान प्रत्येक सिर्फ मूल सरणी है और शायद ही कभी रूबी कोड में प्रयोग किया जाता है, लेकिन नक्शे में से एक है सबसे महत्वपूर्ण कार्यात्मक उपकरण ।
क्या map
करता है एक सरणी लौटाता है जिसमें ब्लॉक या नामित विधि के परिणाम होते हैं जो पारित हो जाते हैं। उदाहरण के लिए:
2.2.3 :001 > [:how, :now, :brown, :cow].map &:to_s
=> ["how", "now", "brown", "cow"]
इस मामले में मैंने एक ब्लॉक पारित नहीं किया है Symbol
, लेकिन सिर्फ एक class Symbol
वस्तु है , लेकिन वस्तुओं में एक to_proc
विधि है जिसके परिणामस्वरूप होगा:
[:how.to_s, :now.to_s, ...]
BTW, आपको प्रलेखन खोजने में कठिन समय हो सकता है क्योंकि नक्शा Enumerable में एक विधि है जबकि प्रत्येक ( Enumerable मॉड्यूल द्वारा आवश्यक एक विधि ) Array में एक विधि है ।
एक सामान्य ज्ञान नोट के रूप में: मानचित्र कार्यान्वयन प्रत्येक पर आधारित है ।