4
A
回答
10
是的,這是可能的。
[1,2,3,4,5,6].reverse_each.each_cons(3) { |before, current, next_|
p [before, current, next_]
}
打印
[6, 5, 4]
[5, 4, 3]
[4, 3, 2]
[3, 2, 1]
([nil]+[1,2,3,4,5,6]+[nil]).reverse_each.each_cons(3) { |before, current, next_|
p [before, current, next_]
}
打印
[nil, 6, 5]
[6, 5, 4]
[5, 4, 3]
[4, 3, 2]
[3, 2, 1]
[2, 1, nil]
2
這可能會爲你工作:
class Array
alias :old_each :each
def each
reverse.old_each {|e| yield e}
end
end
a = [1,2,3]
a.each {|e| print "#{e} "} # => 3 2 1
請注意,您必須小心,因爲數組,出於效率的原因,重載一些枚舉方法,而不使用each
。
我和我以前的老闆一起在一個大項目中使用了它,在我離開之前加入它。男孩,我很高興離開那裏。
編輯:剛剛發生,我認爲我可以在上面提到的項目改善了這一點:
def each
if rand(1000) == 500
reverse.old_each {|e| yield e}
else
old_each {|e| yield e}
end
end
相關問題
- 1. 紅寶石短陣迭代
- 2. 迭代一個YAML陣列紅寶石
- 3. 反向散列紅寶石
- 4. 紅寶石組合與陣列元素
- 5. 紅寶石陣列內部
- 6. 紅寶石:在陣列
- 7. 陣列中的紅寶石
- 8. 紅寶石陣列打印
- 9. 紅寶石陣列麻煩
- 10. 紅寶石陣列平等
- 11. 紅寶石陣列
- 12. 紅寶石陣列散列鍵
- 13. 紅寶石陣列切片
- 14. 完成紅寶石陣列
- 15. 紅寶石:迭代計算
- 16. 紅寶石塊迭代
- 17. 訪問紅寶石迭代
- 18. 紅寶石定製迭代
- 19. 添加元素到紅寶石陣列返回新陣列
- 20. 紅寶石通過散列迭代
- 21. 紅寶石陣列reverse_each_with_index
- 22. 紅寶石:反向,變異列表
- 23. 兩個紅寶石陣列
- 24. 紅寶石包括檢查和迭代
- 25. 紅寶石做循環和迭代
- 26. 紅寶石陣列換行
- 27. 紅寶石 - 創建三角陣列
- 28. 紅寶石陣列,[]操作
- 29. 在陣列紅寶石
- 30. 迭代通過紅寶石哈希陣列
很好的解釋.. –
我有一個字與@Arup。他現在熟悉「代碼炸彈」這個詞。 –