我通常在ruby中關注的一件事是遞歸模式。例如,假設我有一個數組,並且可能包含數組作爲無限深度的元素。因此,例如:紅寶石:標準遞歸模式
my_array = [1, [2, 3, [4, 5, [6, 7]]]]
我想創建可在陣列壓扁成[1, 2, 3, 4, 5, 6, 7]
的方法。
我知道.flatten
會完成這項工作,但這個問題的意思是我經常遇到的遞歸問題的一個例子 - 因此我試圖找到一個更可重用的解決方案。
總之 - 我猜這裏面有一個標準模式,但我不能拿出任何特別優雅的東西。任何想法表示讚賞
感謝您的迴應。我最初嘗試使用類之外的函數,它不會遞歸地調用item.my_flatten ...但這是有效的。歡呼聲 – PlankTon
@PlankTon。把my_flatten寫成函數只需要對上面的代碼稍作修改。但是作爲一種OOP語言,並且'my_flatten'是一種通用算法,將它添加到Array中意義重大。 – tokland