2011-05-23 19 views
20

रूबी में सरणी और हैश के बीच क्या अंतर है? एडम एक फोर्ड है बॉब एक ​​रेनॉल्ट है जॉन एक Peugeot है,,:सरणी और हैश के बीच क्या अंतर है?

+1

जब आप एक तकनीकी विवरण न केवल एक तकनीकी विवरण के बजाय एक का उपयोग करना चाहते हैं, तो एक अच्छा जवाब हो सकता है। –

उत्तर

27
रूबी डॉक्टर से

:

सरणी आदेश दिया जाता है, किसी भी वस्तु का पूर्णांक अनुक्रमित संग्रह। सी या जावा में एरे इंडेक्सिंग 0 से शुरू होता है। एक नकारात्मक सूचकांक को सरणी के अंत के सापेक्ष माना जाता है-अर्थात, -1 का सूचकांक सरणी के अंतिम तत्व को इंगित करता है, -2 सरणी में अंतिम तत्व के बगल में है, और इसी तरह। अधिक के लिए here देखें।

ए हैश कुंजी-मूल्य जोड़े का संग्रह है। यह एक ऐरे के समान है, सिवाय इसके कि अनुक्रमण किसी भी ऑब्जेक्ट प्रकार की मनमानी कुंजी के माध्यम से किया जाता है, एक पूर्णांक सूचकांक नहीं। हैश ने अपने मूल्यों को क्रम में समझाया कि संबंधित कुंजी डाली गई थीं।

हैश के पास डिफ़ॉल्ट मान है जो हैश में मौजूद कुंजी तक पहुंचने पर वापस लौटाया जाता है। डिफ़ॉल्ट रूप से, वह मान शून्य है। अधिक के लिए here देखें।

8

एक सरणी चीजों में से एक का आदेश दिया सूची है: ए, बी, सी, डी

एक हैश कुंजी/मान जोड़े का एक संग्रह है।

+0

क्या इसका मतलब रूबी ऐरे = PHP इंडेक्सेड ऐरे और रूबी हैश = PHP एसोसिएटिव ऐरे? – emurad

+0

इस तरह लगता है। मैंने 90 के दशक से किसी भी प्रकार की सरणी की आवश्यकता के लिए PHP के साथ पर्याप्त जटिल कुछ भी करने से बचने में कामयाब रहा है। – Quentin

10

Arrays: Arrays डेटा के संग्रह को संग्रहीत करने के लिए उपयोग किया जाता है। किसी सरणी में प्रत्येक ऑब्जेक्ट में एक अनन्य कुंजी होती है। हम इस अद्वितीय कुंजी का उपयोग कर सरणी में किसी ऑब्जेक्ट तक पहुंच सकते हैं। सरणी में स्थितियां "0" से शुरू होती हैं। पहला तत्व "0" पर स्थित है, दूसरा स्थान 1 सेकंड पर

उदाहरण: निम्नलिखित में प्रयास करें - irb।

bikes = Array.new 
bikes = %w[Bajaj-Pulsar, Honda-Unicorn, TVS-Apache, Yamaha, Suzuki] 

आपने सरणी में 4 तत्व जोड़े हैं।

puts bikes[3] 
Yamaha, 

एक नए तत्व स्थिति 5.

bikes[5] = "Hardly Davidson" 

Hashes जोड़ें: सरणियों की तरह, हेश भी डाटा स्टोर करने के लिए इस्तेमाल कर रहे हैं। हैश किसी ऑब्जेक्ट को किसी ऑब्जेक्ट पर इंगित करता है। एक स्ट्रिंग को एक निश्चित "अर्थ" असाइन करने पर विचार करें। प्रत्येक बार जब आप उस स्ट्रिंग को संदर्भित करते हैं, तो यह इसका "अर्थ" संदर्भित करता है।

उदाहरण:

bikes = Hash.new 
bikes = { 
'Bajaj' => 'Pulsar 220, Pulsar 200, Pulsar 180 and Pulsar 150', 
'Honda' => 'Unicorn, Shine and Splendor', 
'TVS' => 'Apache, Star City, and Victor' 
} 

यह अब का प्रयास करें:

bikes['Bajaj'] 

आप => "पल्सर 220, पल्सर 200, पल्सर 180 और पल्सर 150"

0

दो शब्दों मिल पाने " इन दिनों एक साथ "धोया"।मुझे लगता है कि यह कैसे जाता है:

ए 'हैश "कुंजी होगा -> मान युग्म:

:

(top -> tshirt, bottom -> shorts, feet -> shoes)

और एक" सरणी "आम तौर पर एक सूचकांक होगा ([0]tshirt, [1]shorts, [2]shoes)

लेकिन, सही या गलत, आप कुंजी -> मूल्य जोड़े को "सरणी" भी कहते हैं।

मुझे लगता है कि अंतर मुख्य रूप से कब और कैसे आप उनका उपयोग करना चाहते हैं पर निर्भर करता है। आपको एक हैश को एक हैश को कॉल करने में बहुत परेशानी नहीं होगी, या इसके विपरीत, लेकिन आपको अंतर पता होना चाहिए।

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