के माध्यम से इसे फिर से चालू करते समय Array
से तत्वों को सुरक्षित रूप से हटाना संभव है? एक पहला परीक्षण आशाजनक दिखता है:क्या प्रत्येक के अंदर एक ऐरे से हटाना सुरक्षित है?
a = (1..4).to_a
a.each { |i| a.delete(i) if i == 2 }
# => [1, 3, 4]
हालांकि, मैं पर मुश्किल तथ्यों नहीं पा सके: चाहे वह (डिजाइन) के द्वारा सुरक्षित है
- जो रूबी संस्करण के बाद से यह सुरक्षित है
अतीत में कुछ बिंदुओं पर, ऐसा लगता है कि यह not possible to do था:
यह काम नहीं कर रहा है क्योंकि रूबी कुछ हटाने की कोशिश करते समय
.each
पाश से बाहर निकलता है।
documentation पुनरावृत्ति के दौरान विलुप्त होने के बारे में कुछ भी नहीं बताता है।
मैं reject
या delete_if
की तलाश नहीं कर रहा हूं। मैं चीजों को एक सरणी के तत्वों के साथ करना चाहता हूं, और कभी-कभी सरणी से एक तत्व भी हटा देता हूं (जब मैंने कहा तत्व के साथ अन्य चीजें की हैं)।
अद्यतन 1: मैं "सुरक्षित" की मेरी परिभाषा पर बहुत स्पष्ट नहीं था, मैं क्या मतलब था:
- किसी भी अपवाद नहीं उठता
Array
में किसी भी तत्व को ना छोड़ें
यह सुरक्षित नहीं है (आप "सुरक्षित" को परिभाषित करने के आधार पर) उन सभी भाषाओं में जिनके साथ मेरा अच्छा अनुभव है। इसे पुन: सक्रिय करते समय संग्रह को संशोधित करना आपके प्रोग्राम को तोड़ने या आपको आश्चर्यचकित करने की गारंटी है।इसके लिए एक वैध उपयोग मामले के बारे में नहीं सोच सकते हैं। –
इसे सुरक्षित करने के लिए, मूल –