2011-09-05 6 views
10

मैं जानता हूँ कि मैं रूबी में ऐसा कर सकते हैं:ब्लॉक का उपयोग किए बिना रुबी में 'मानचित्र' की गणना कैसे करें?

['a', 'b'].map do |s| s.to_sym end 

और इस मिल:

[:a, :b] 

मैं यह करने के लिए एक और अधिक संक्षिप्त तरीके के लिए देख रहा हूँ, एक ब्लॉक का उपयोग किए बिना। दुर्भाग्यवश, यह काम नहीं करता है:

['a', 'b'].map #to_sym 

क्या मैं प्रारंभिक कोड से बेहतर कर सकता हूं?

उत्तर

11

Symbol#to_proc के बारे में थोड़ा पढ़ें:

यह काम करता है अगर आप रूबी 1.8.7 या उच्चतर का उपयोग कर रहे हैं या यदि आप रेल का उपयोग कर रहे - ActiveSupport में जोड़ देगा आपके लिए कार्यक्षमता

+0

यह 1.8.7 पर भी काम करता है। 1.8.7 (मुख्य): 0> RUBY_DESCRIPTION => "रूबी 1.8.7 (2011-06-30 पैचलेवल 352) [x86_64-linux]" 1.8.7 (मुख्य): 0> ['ए', 'बी '] .map (&: to_sym) => [: ए,: बी] – lucapette

+0

लुकापेट: हाँ, मैंने कुछ जानकारी जोड़ने/ठीक करने के लिए त्वरित संपादन किया है। – PreciousBodilyFluids

+0

हाँ मैंने इसे देखा। आप जानते हैं, इन सभी कार्यान्वयनों के साथ मुझे सामान याद रखने में समस्याएं आ रही हैं। जब मैंने आपका जवाब पढ़ा तो मैं जांच गया कि मुझे यह अच्छी तरह याद आया;) – lucapette

संबंधित मुद्दे