3
我對Ruby中對Array類的理解有點掙扎。我曾在Google 上看到一個Array類實際上更多的是一個列表,但我似乎無法找到它的實際工作方式。紅寶石列表實現?
我真的很關心性能問題,因爲我必須處理大的排序列表,並且我不想跨越整個數組向其添加單個元素。
所以我想知道是否有任何實際和明確的列表實現(例如在caml中),並且我還在尋找關於如何實現Array的方法的優秀文檔,關於優化問題。
謝謝!
我對Ruby中對Array類的理解有點掙扎。我曾在Google 上看到一個Array類實際上更多的是一個列表,但我似乎無法找到它的實際工作方式。紅寶石列表實現?
我真的很關心性能問題,因爲我必須處理大的排序列表,並且我不想跨越整個數組向其添加單個元素。
所以我想知道是否有任何實際和明確的列表實現(例如在caml中),並且我還在尋找關於如何實現Array的方法的優秀文檔,關於優化問題。
謝謝!
一個Ruby的陣列提供了一個完整列表界面:
因此,沒有必要擁有特殊的List類或模塊 - 以Java爲例,如果我們始終需要List
,我們最終會使用ArrayList
,因爲它提供了良好的性能和訪問元素索引的額外好處。因此,Ruby(類似於Python,PHP或Lua等其他語言)嘗試通過提供三種類型(Array
,Hash
和Set
)來簡化關於集合類型的事情 - 因此具有豐富的接口,可以輕鬆模擬其他集合類型,如List,Queue或Deque等。
如果您想了解有關實施的詳細信息,我建議您簡單地下載Ruby源代碼並調查相應的文件(對於MRI,它是頂層的array.c目錄) 。
如果您真的關心性能,那麼您應該更關心Ruby [benchmark](http://ruby-doc.org/stdlib/libdoc/benchmark/rdoc/index.html),或者使用因爲Ruby語言被設計爲方便而不是快速,所以完全不同的語言。 – maerics