排序不同順序
回答
第一行:
[3, 5].sort { |a, b| b <=> a }
調用與a = 3
和b = 5
塊。它返回5 <=> 3
的結果,即1
。大於0
的整數告訴sort
a
跟在b
之後。結果是[5, 3]
。
第二行:
[5, 3].sort { |a, b| b <=> a }
調用與a = 5
和b = 3
塊。它返回3 <=> 5
的結果,即-1
。小於0
的整數告訴sort
b
跟在a
之後。結果是(再次)[5, 3]
。
這讓我很清楚:) – pramod
因爲您正在對數組進行排序,並且更改數組的元素順序不會更改排序結果。
這是排序的最後一點 - 儘管初始數組排序順序得到排序的結果。
要更改結果,您需要更改排序規則,而不是數組。
這對我有意義,能否請你解釋塊如何評估。我認爲這取決於輸入數組。 – pramod
@pramod [請參閱此主題](http://stackoverflow.com/questions/2637419/how-does-arraysort-work-when-a-block-is-passed)上的'排序'與塊說明。它不依賴於「輸入數組」:) –
無論輸入順序如何,輸出都是相同的,因爲您對數組進行排序。
如果你想用相反的順序排序寫
[3,5].sort{|a,b| a <=> b}
- 1. Redis georadius,但排序順序不同
- 2. Kendo Grid排序不同的順序
- 3. MySQL按不同排序順序對多列進行排序
- 4. 如何按順序排序和排序順序排列相同的列
- 5. 不按順序排序
- 6. 排序順序
- 7. 排序順序
- 8. 排序表的順序不按字母順序排列
- 9. 按不同順序排列div
- 10. 使用不同的比較維護相同的排序順序
- 11. 擊:排序上相同的值賦予不同的順序
- 12. 排序排列順序
- 13. c排隊,排序順序
- 14. HTMLElement.getClientRects()排序順序
- 15. 排序順序table.getRows
- 16. Dojox.grid.datagrid排序順序
- 17. NSTableView排序順序
- 18. 排序順序SQL
- 19. LINQ2SQL排序順序
- 20. rsort排序順序
- 21. 重排排順序
- 22. 按字母順序排列的鏈表不按順序排列
- 23. OrderedDict不按順序排列
- 24. JS排序特定的排序順序
- 25. JQuery UI排序顯示排序順序
- 26. 「不支持的整理排序順序」
- 27. MySQL的 - 組順序不排序
- 28. 排序順序不一致對象
- 29. 數據表列排序ASCII順序,不
- 30. NSArray不按數字順序排序
您發佈的兩行代碼排序了同一數組元素的兩個不同排列。他們**必須**產生相同的結果(根據您的排序規則對值進行排序)。 – axiac
@axiac你能解釋一下排序塊如何評估。我認爲這取決於輸入數組 – pramod
如果他們給出不同的結果,排序的目的是什麼? – sawa