ruby – sort和sort_by之间的细微差别

前端之家收集整理的这篇文章主要介绍了ruby – sort和sort_by之间的细微差别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这不是一个技巧问题:
[1,2,3].sort_by { |x,y| x <=> y }
=> [1,3] 

[1,y| y <=> x }
=> [1,3]

这里发生了什么?我原本期望数组彼此相对(因为它们具有排序和相同的参数).

解决方法

#sort_by应该只取一个块参数,一个来自数组的项,并根据块的结果进行排序.

当将两个块参数传递给它时,第二个被设置为nil,因此所有块结果都是1< =>. nil为nil,因此数组的顺序不变.

[1,3,2].sort_by { |x| x } # sorts using x <=> y
=> [1,3]

[1,2].sort_by { |x,y| x <=> y } # sorts using nil <=> nil
=> [1,2]
原文链接:https://www.f2er.com/ruby/269524.html

猜你在找的Ruby相关文章