作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
这不是一个技巧问题:
[1,2,3].sort_by { |x, y| x <=> y }
=> [1, 2, 3]
[1,2,3].sort_by { |x, y| y <=> x }
=> [1, 2, 3]
这是怎么回事?我原以为数组会彼此相反(因为它们具有排序和相同的参数)。
最佳答案
#sort_by
应该只采用一个 block 参数,数组中的一项,并根据 block 的结果进行排序。
当向它传递两个 block 参数时,第二个设置为 nil
因此所有 block 结果都像 1 <=> nil
这是 nil
所以数组的顺序不变。
[1, 3, 2].sort_by { |x| x } # sorts using x <=> y
=> [1, 2, 3]
[1, 3, 2].sort_by { |x, y| x <=> y } # sorts using nil <=> nil
=> [1, 3, 2]
关于ruby - sort 和 sort_by 之间的细微差别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17180284/
我是一名优秀的程序员,十分优秀!