जैसा कि सभी का उल्लेख है, यह एक "splat" है। रूबी सिंटैक्स की तलाश करना असंभव है, और मैंने इसे अन्य प्रश्नों में पूछा है। प्रश्न के उस हिस्से का जवाब यह है कि आप
asterisk in ruby syntax
पर Google पर खोज करते हैं। Google आपके लिए है, बस शब्दों में जो कुछ आप देखते हैं उसे डाल दें।
Anyhoo, बहुत सारे रूबी कोड की तरह, वह कोड काफी घना है।
line.split(/=|;/)
छह तत्वों, first_name, mickey, last_name, mouse, country, usa
की एक सरणी में आता है। फिर स्प्लट का उपयोग इसे हैश में बनाने के लिए किया जाता है। अब रूबी लोग आपको स्प्लट विधि को देखने के लिए हमेशा भेजते हैं, क्योंकि सब कुछ रूबी में उजागर होता है। मुझे नहीं पता कि यह कहां है, लेकिन एक बार आपके पास यह देखने के बाद, आप देखेंगे कि यह for
सरणी के माध्यम से चलाता है और हैश बनाता है।
आप core दस्तावेज़ीकरण में कोड की तलाश करेंगे। आप इसे नहीं ढूँढ सकते हैं (मैं नहीं कर सकता), तो आप इस तरह कुछ कोड लिखने की कोशिश करेंगे (जो काम करता है, लेकिन रूबी की तरह कोड नहीं है):
line = "first_name=mickey;last_name=mouse;country=usa"
presplat = line.split(/=|;/)
splat = Hash.new
for i in (0..presplat.length-1)
splat[presplat[i]] = presplat[i+1] if i%2==0
end
puts splat["first_name"]
और उसके बाद रूबी गिरोह बताने के लिए सक्षम हो जाएगा आप क्यों अपना कोड मूर्ख, बुरा, या सिर्फ सादा गलत है।
यदि आपने इसे अभी तक पढ़ा है, तो Hash दस्तावेज़ीकरण के माध्यम से पढ़ लें, जो विभाजन को समझाता नहीं है लेकिन आपको इसे जानने की आवश्यकता है।
स्रोत
2009-05-28 00:20:56
सामान्य रूप से, जब एलएचएस जैसी स्थिति में उपयोग किया जाता है (जब भी आप इसे किसी मूल्य पर आक्रमण कर रहे होते हैं), स्प्लट एक सरणी को अलग-अलग मानों में विभाजित करता है, और जब आरएचएस जैसी स्थिति में उपयोग किया जाता है (किसी भी समय आप ' कुछ पूर्व अपरिभाषित चरों पर इसका उपयोग कर रहे हैं), यह अलग-अलग मानों को सरणी में समूहित करता है। तो 'ए, बी, * सी = डी, ई, एफ, * जी 'एक = डी, बी = ई, और सी = [एफ, जी 0, जी 1, जी 2, ..., जीएन] सेट करता है, जहां जी = [ g0, g1, g2, ..., gn] – rampion
महान उत्तर, स्पष्ट और विस्तृत, धन्यवाद –
बस पूर्णता के लिए, स्प्लट ऑपरेटर डेविड द्वारा 'द वेल्ड ग्राउंडेड रूबीस्ट' में उपयोग की जाने वाली शब्दावली के अनुसार एक सरणी सूची में बदल जाता है ए ब्लैक –