2011-12-06 21 views
5

मैं सीखना रूबी हार्ड वे ऑनलाइन सीखने के माध्यम से अपना रास्ता काम कर रहा हूं; मैंने अभी 26 वां अभ्यास पूरा कर लिया है जो एक "परीक्षण" था जिससे आपने किसी के टूटे हुए कोड को ठीक किया था।रूबी मूल बातें: ऐरे में पॉप विधि

मेरी समस्या पॉप विधि के साथ एक तर्क का उपयोग करने के साथ आया था। मैं मूलभूत बातों से परिचित हूं लेकिन सही जवाब का अर्थ है "-1" से "1" तक तर्क बदलना, और मुझे यकीन नहीं है कि इसका क्या अर्थ है, बिल्कुल।

प्रश्न में लाइन है:

def puts_last_word(words) 
    word = words.pop(1) 
    puts word 
end 

मैं इसे सरणी से दूसरा तत्व पॉप लेकिन मैं पुष्टि या मदद, जो भी उचित है चाहते हैं मान।

पढ़ने के लिए बहुत धन्यवाद!

+1

मान लीजिए, 'ri Array.pop' का उपयोग करें। –

उत्तर

3

सबसे अच्छा पुष्टि सरणी # पॉप के दस्तावेज में किया जा सकता है: http://rubydoc.info/stdlib/core/1.9.3/Array:pop

कि के अनुसार, तर्क कई तत्वों, सरणी के पीछे से गिनती, दूर करने के लिए कैसे निर्दिष्ट करता है।

pop() और pop(1) के बीच फर्क सिर्फ इतना है कि पूर्व एक भी तत्व (एक नष्ट कर दिया) वापस आ जाएगी, जबकि बाद एक भी तत्व (फिर से, नष्ट कर दिया एक) के साथ एक सरणी वापस आ जाएगी है।

संपादित करें: मुझे लगता है कारण परीक्षण का इस्तेमाल किया -1#[], जहां -1 पिछले तत्व का मतलब होगा के साथ सरणी का उपयोग के बीच अंतर के बारे में आप को पढ़ाने के लिए है, और pop तरह के तरीकों, कि एक राशि है, न कि स्थिति की उम्मीद , उनके तर्क के रूप में।

+0

उत्कृष्ट जवाब, पूरी तरह से समझ में आता है। यह पहली बार था जब मैंने ऐसा कुछ देखा था, इसलिए मैं उलझन में था। (डॉक्स के लिंक के लिए भी धन्यवाद, उम्मीद है कि मैं अब stoooopid प्रश्नों को काट दूंगा।) – helipacter

2

तर्क निर्दिष्ट करता है कि कितने आइटम पॉप करना है। यदि आप कोई तर्क निर्दिष्ट करते हैं तो यह एक सरणी देता है जबकि तर्क को निर्दिष्ट नहीं करता है, केवल तत्व:

ruby-1.8.7-p352 :006 > a = [1,2,3] 
=> [1, 2, 3] 
ruby-1.8.7-p352 :007 > a.pop(1) 
=> [3] 
ruby-1.8.7-p352 :008 > a = [4,5,6] 
=> [4, 5, 6] 
ruby-1.8.7-p352 :009 > a.pop(2) 
=> [5, 6] 
ruby-1.8.7-p352 :010 > a.pop 
=> 4 
+0

मदद के लिए भी धन्यवाद! मैं इसकी प्रशंसा करता हूँ! – helipacter