2012-04-04 15 views
88

अच्छी तरह से उद्धृत RIP Hash rocket post हैश रॉकेट सिंटैक्स (:foo => "bar") को इंगित करने के लिए प्रतीत होता है कि नए-टू-रूबी JSON-style हैश (foo: "bar") के पक्ष में बहिष्कृत किया गया है, लेकिन मुझे हैश रॉकेट बताते हुए कोई निश्चित संदर्भ नहीं मिल रहा है रूप वास्तव में रूबी 1.9 के रूप में बहिष्कृत/unadvised है।हैश रॉकेट को हटा दिया गया है?

+0

मुझे लगता है कि लड़का केवल रूबी के साथ रूबी का उपयोग करता है। –

उत्तर

119

कि ब्लॉग पोस्ट के लेखक ज्यादा नाटकीय और मूर्ख किया जा रहा है, =>stillquitenecessary है। विशेष रूप से:

  1. आपको लगता है कि के हवाले से की आवश्यकता होती है प्रतीकों के लिए रॉकेट का उपयोग करना चाहिए: :'where.is' => x मान्य है, लेकिन नहीं है। रूबी 2.2 ने इस समस्या को ठीक कर दिया है ताकि आप रूबी 2.2+ में कह सकें।
  2. आपको रॉकेट का उपयोग उन प्रतीकों के लिए करना चाहिए जो मान्य लेबल नहीं हैं: :$set => x मान्य है लेकिन $set: x नहीं है। रूबी 2.2+ में आप उद्धरण के साथ इस समस्या को हल कर सकते हैं: '$set': x द राइट थिंग करेगा।
  3. यदि आप अपने हैंश में कुंजी का उपयोग करते हैं तो आपको रॉकेट का उपयोग करना चाहिए जो कि प्रतीक नहीं हैं: 's' => x मान्य है लेकिन 's': x कुछ अलग है।

आप निश्चित रूप से स्पष्ट ढंग से ऊपर चारों ओर kludge कर सकते हैं:

h = { } 
h[:'where.is'] = 'pancakes house?' 
# etc. 

लेकिन यह है कि सिर्फ बदसूरत और अनावश्यक है।

रॉकेट रूबी के हैश को अपंग किए बिना कहीं नहीं जा रहा है।

+4

एस/अत्यधिक नाटकीय और मूर्ख/नाटकीय और एक भाषण श्रद्धांजलि के साथ वकालत। आपके बाकी अंक खड़े हैं। – dbenhur

+0

मैं सहमत हूं, यह निश्चित रूप से एक भाषा अद्यतन के बारे में सबसे स्पष्ट पदों में से एक है। हालांकि थोड़ा भ्रामक: डी। – mahemoff

+13

आपको आश्चर्य करना होगा कि क्या नए सिंटैक्स का उपयोग करना है, जब आपको अभी भी कुछ परिदृश्यों के लिए पुराने वाक्यविन्यास पर भरोसा करने की आवश्यकता है, तो बस हमारे कोड को जटिल बनायेगा। –