刪除重複是否有紅寶石的好方法,以消除在枚舉列表複製(即拒絕等)紅寶石枚舉列表
紅寶石枚舉列表
回答
對於數組,你可以使用的uniq()方法
a = [ "a", "a", "b", "b", "c" ]
a.uniq #=> ["a", "b", "c"]
所以,如果你只是
(1..10).to_a.uniq
或
%w{ant bat cat ant}.to_a.uniq
因爲反正幾乎每個實現方法具你做的實現將作爲一個Array類返回。
請注意,'(1..10).to_a.uniq'永遠不會是任何東西,而是浪費打字,因爲根據定義,範圍不能有重複的元素。 (或者有什麼我很困惑的?) – Telemachus 2009-09-06 19:13:34
你是對的,它永遠不會重複。只是給一個想法。我添加了另一個樣本,謝謝。 – Jirapong 2009-09-07 00:27:08
從技術角度來說,一個範圍(Fixnums以外的其他範圍)可以產生重複的元素 - 它只需要一個對象x,x.succ == x。例如,表示斐波納契數字的類將具有數字1的這個屬性。我不確定爲什麼你會那樣做 - 很可能這是一個瘋狂的跡象 - 但它是*可能*。 – Chuck 2009-09-07 00:43:30
嘛策略是將它們轉換爲數組或從數組刪除重複。順便說一句,列表是ruby中的數組,所以我不確定你的意思是「可枚舉列表」。
我也被「enumerable list」弄糊塗了。如果它是一個數組,那麼它非常簡單。如果它是Enumerator類,那麼它需要更多的思考。 – peterpengnz 2012-12-03 21:10:42
如果元素順序不重要,可以轉換爲Set。
我喜歡使用集合邏輯運算符,如果對象沒有.uniq方法。
a = [2,3,3,5,5,5,6] # => [2, 3, 3, 5, 5, 5, 6]
a | a # => [2, 3, 5, 6]
- 1. 紅寶石枚舉鏈
- 2. 紅寶石:枚舉鏈
- 3. 紅寶石「枚舉」比較
- 4. 聚合上枚舉紅寶石
- 5. 紅寶石覆蓋可枚舉法
- 6. 紅寶石枚舉反向檢測
- 7. 紅寶石枚舉「單」的方法
- 8. 紅寶石散列在紅寶石
- 9. 紅寶石 - 列表零下
- 10. 紅寶石列表實現?
- 11. 紅寶石:封裝與可枚舉的方法注入
- 12. 紅寶石枚舉:先拿n,其中塊返回true
- 13. 紅寶石Mongo gem批量插入枚舉
- 14. 檢查另一個對象的紅寶石枚舉
- 15. 紅寶石枚舉 - 找到最多匹配元件
- 16. 紅寶石:實現函數返回一個枚舉
- 17. 紅寶石可選限位枚舉選擇/找到
- 18. 爲什麼要使用枚舉紅寶石
- 19. 紅寶石可枚舉:一個塊的第一truthy值
- 20. 紅寶石軌跡 - 查詢枚舉記錄
- 21. 實現java的枚舉樣的行爲在紅寶石
- 22. 紅寶石模塊/枚舉檢索奇數值
- 23. 紅寶石:NoMethodError:未定義的方法`[]」爲#<枚舉:0x007f8683922870>
- 24. 紅寶石陣列
- 25. 紅寶石軌道,自舉鏈接
- 26. 紅寶石寶石文檔
- 27. 寶石安裝紅寶石
- 28. 調試寶石紅寶石
- 29. 紅寶石程序寶石
- 30. 錯誤紅寶石寶石
你可以指定你想記住哪種列表(1)*不是*數組,但(2)可能有重複?範圍不能有重複。 – Telemachus 2009-09-06 19:17:26
「enumerable lists」非常不清楚。它是一個Enumerator類的實例變量嗎? – peterpengnz 2012-12-03 21:12:36