प्रतीकों की सरणी बनाएँ


130

क्या इस तरह से कुछ करने का एक क्लीनर तरीका है?

%w[address city state postal country].map(&:to_sym) 
#=> [:address, :city, :state, :postal, :country]

मुझे लगा %sकि मैंने जो चाहा, वह किया होगा, लेकिन ऐसा नहीं है। यह सिर्फ कोष्ठक के बीच सब कुछ लेता है और इसमें से एक बड़ा प्रतीक बनाता है।

बस एक छोटी सी झुंझलाहट।


1
यह काफी मानक है। क्या आपके कार्यान्वयन के बारे में कुछ है जो इस पद्धति को अवांछनीय बनाता है?
dwhalen 21

5
"वास्तव में" नहीं, लेकिन रेल में अक्सर इस तरह की वाक्य रचना चीनी होती है जो मुझे उपयोग करके अंदर से सभी गर्म महसूस करती है। :)
आकर्षित किया

माणिक 2 के बाद से, वहाँ है! देखें stackoverflow.com/questions/8816877/…
m_x

जवाबों:


357

मूल उत्तर सितंबर 11 में वापस लिखा गया था, लेकिन, रूबी 2.0 से शुरू होकर , प्रतीकों की एक सरणी बनाने का एक छोटा तरीका है! यह शाब्दिक है:

%i[address city state postal country]

जैसा आप चाहते हैं वैसा ही करेंगे।


3
मैं हमेशा यह भूल जाता हूं कि यह "इंटर्न" के लिए "to_sym" का विकल्प है। देखें codecademy.com/forum_questions/512a675cf116c52d0d00674b
A5308Y

माणिक के जोर पर ध्यान दें 2. यह रूबी प्रोग्रामिंग लैंग्वेज बुक में नहीं दिखाया गया है, क्योंकि यह केवल 1.9.3 तक ही है।
डोनटो

रूबी के% शाब्दिक सिंटैक्स का उपयोग करते समय मैं कोष्ठक के स्थान पर दो गैर-अल्फ़ान्यूमेरिक वर्णों का उपयोग करना पसंद करता हूं, जैसे%i|a b c|
एपीगीन

6
जब भी आप यह चाहते हैं, जो कोई भी आपके कोडबेस में इसे देखता है, उसे Google को यह पता लगाना होगा कि इस बार विचित्र सिंटेक्स रूबी ने हमारे ऊपर क्या फेंक दिया है। जब पूरी तरह से पठनीय विकल्प मौजूद हैं, तो मैं अस्पष्ट भाषा सुविधाओं से बचने की अत्यधिक अनुशंसा करता हूं, [[पता:: शहर, राज्य]।
एलेक्स

धन्यवाद यह वास्तव में उपयोगी है।
sonnyhe2002

91

बहुत अधिक शाब्दिक बनने के जोखिम के साथ, मुझे लगता है कि प्रतीकों की एक सरणी बनाने का सबसे साफ तरीका प्रतीकों की एक सरणी का उपयोग कर रहा है।

fields = [:address, :city, :state, :postal, :country]

इससे अधिक संक्षिप्त कुछ भी नहीं सोच सकते।


11
क्या आपका मतलब "बहुत शाब्दिक" है?
एंड्रयू ग्रिम

मैं हमेशा चीजों को करने के सबसे शक्तिशाली और संक्षिप्त तरीकों को खोजना और उनका उपयोग करना पसंद करता हूं। यह उत्तर वास्तव में इस विशेष सूची के लिए मेरी तुलना में कम कीस्ट्रोक्स है, लेकिन ~ 9 या अधिक वस्तुओं की सूची के साथ, एक विकल्प कम होगा। जवाब के लिए धन्यवाद। :)
ड्रू

4
मुझे लगता है कि पठनीयता इस मामले में सभी को प्रभावित करती है। यह उत्तर% w / to_sym विकल्प की तुलना में बहुत अधिक पठनीय (IMO) है। अपने गले में आपको पंच करने के लिए अपना सामान लेने के लिए अगले डेवलपर न करें।
ब्रूस हबर्ड

3

%i[ ] गैर-प्रक्षेपित ऐरे चिह्नों को, व्हाट्सएप द्वारा अलग किया गया (रूबी 2.0 के बाद)

%I[ ] व्हाट्सएप द्वारा अलग किए गए प्रतीकों की अंतर्वृत्त सरणी (रूबी 2.0 के बाद)

%i[address city state postal country]

ऐसा करने का सबसे साफ तरीका है:

%w[address city state postal country].map(&:to_sym)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.