रूबी में आमतौर पर जो चीजें मिलती हैं उनमें से एक रिकर्स पैटर्न है। उदाहरण के लिए, मान लें कि मेरे पास एक सरणी है, और इसमें असीमित गहराई के तत्वों के रूप में सरणी हो सकती है। तो, उदाहरण के लिए:रूबी: मानक रिकर्सन पैटर्न
my_array = [1, [2, 3, [4, 5, [6, 7]]]]
मैं एक तरीका है जिसके [1, 2, 3, 4, 5, 6, 7]
में सरणी समतल कर सकते हैं बनाना चाहते हैं।
मुझे पता है कि .flatten
नौकरी करेगा, लेकिन यह समस्या नियमित रूप से चलने वाले रिकर्सन मुद्दों का एक उदाहरण है - और इस तरह मैं एक और पुन: प्रयोज्य समाधान खोजने की कोशिश कर रहा हूं।
संक्षेप में - मुझे लगता है कि इस तरह की चीज़ के लिए एक मानक पैटर्न है, लेकिन मैं विशेष रूप से सुरुचिपूर्ण कुछ भी नहीं कर सकता। कोई भी विचार की सराहना की
प्रतिक्रिया के लिए धन्यवाद। मैं मूल रूप से एक वर्ग के बाहर एक समारोह के साथ कोशिश कर रहा था, जो रिकर्सिवली आइटम item.my_flatten को कॉल नहीं करेगा ... लेकिन यह काम करता है। चीयर्स – PlankTon
@PlankTon। फ़ंक्शन के रूप में my_flatten को लिखने के लिए ऊपर दिए गए कोड पर कुछ मामूली परिवर्तन की आवश्यकता है। लेकिन एक ओओपी भाषा होने के नाते, और 'my_flatten' एक सामान्य एल्गोरिदम है, यह इसे ऐरे में जोड़ने के लिए समझ में आता है। – tokland