मुझे यह समझने में मुश्किल समय आ रहा है कि रूबी में ऐरे क्लास की शिफ्ट और अनशिफ्ट के तरीके क्या हैं। क्या कोई मुझे यह समझने में मदद कर सकता है कि वे क्या करते हैं?
pushयह शीर्ष में है, और shiftयह दूसरे छोर से बाहर है।
मुझे यह समझने में मुश्किल समय आ रहा है कि रूबी में ऐरे क्लास की शिफ्ट और अनशिफ्ट के तरीके क्या हैं। क्या कोई मुझे यह समझने में मदद कर सकता है कि वे क्या करते हैं?
pushयह शीर्ष में है, और shiftयह दूसरे छोर से बाहर है।
जवाबों:
रूबी प्रलेखन को देखते हुए
Array.shift सरणी से पहला तत्व निकालता है और उसे वापस करता है
a = [1,2,3]
puts a.shift
=> 1
puts a
=> [2, 3]
अनशिफ्ट प्रदान किए गए मान को सरणी के सामने स्थित करता है, अन्य सभी तत्वों को एक ऊपर ले जाता है
a=%w[b c d]
=> ["b", "c", "d"]
a.unshift("a")
=> ["a", "b", "c", "d"]
shiftऔर जब तक मैं किसी चीज के बारे में भ्रमित नहीं होता, तब तक unshiftएक फिलो स्टैक की तरह काम करता हूं , pushऔर shiftएक फीफो कतार की तरह काम करता हूं।
shiftऔर इस unshiftतरह से कार्य करता है : popऔर pushवे सरणियों को स्टैक के रूप में उपयोग करने के लिए होते हैं, जिसमें आप तत्वों को जोड़ सकते हैं और निकाल सकते हैं (आमतौर पर एक बार)। अंतर सिर्फ इतना है कि है shiftऔर unshiftएक की शुरुआत में जोड़ें / निकालें तत्वों Array, वास्तव में बदलाव अन्य सभी तत्वों ing, जबकि popऔर pushके अंत में जोड़ें / निकालें तत्वों Array, इसलिए अन्य तत्वों 'सूचकांक संरक्षण।
उदाहरण:
# Spacing for clarity:
a = [2, 4, 8] # a => [2, 4, 8]
a.push(16, 32) # a => [2, 4, 8, 16, 32]
a.unshift(0, 1) # a => [0, 1, 2, 4, 8, 16, 32]
a.shift # a => [1, 2, 4, 8, 16, 32]
a.pop # a => [1, 2, 4, 8, 16]
यह पहला तत्व पकड़ लेता है, इसे सरणी से हटा देता है, और हटाए गए तत्व को वापस करता है। यह मूल रूप से एक सरणी को स्टैक की तरह व्यवहार करने का एक तरीका है: shiftपॉप है, unshiftपुश है।
popऔर विधि pushभी Arrayहै, भ्रम की स्थिति नहीं है। :-)
यदि आप सरणी को संसाधित किए जाने वाले मानों की कतार के रूप में सोच सकते हैं, तो आप उपलब्ध किए गए स्थान पर कब्जा करने के लिए अगला (सामने) मान और अन्य मूल्य पर "बदलाव" कर सकते हैं। unshift मानों को वापस रखता है - शायद आप उनमें से कुछ को संसाधित करने के लिए तैयार नहीं हैं, या कुछ बाद के कोड को उन्हें संभालने देंगे।
यह सरणी का पहला तत्व लौटाता है, और इसे तत्वों से हटाता है, तत्वों को वापस एक स्थान पर स्थानांतरित करता है।
तो शिफ्टिंग [1,2,3,4,5]
रिटर्न 1, और होने के लिए सरणी सेट करता है [2,3,4,5]।
अधिक यहाँ ।
shift/unshiftहैंpush/pop, तो आप मानसिक रूप से याद रखने के तरीकों में से 'f' को हटा सकते हैं कि कौन से 'डंप' तत्व हैं और कौन सा 'उन्हें' सम्मिलित करता है। :)