排序不同顺序
回答
第一行:
[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