赞助商

ruby的排序方法发生了什么?

发布时间:2019-05-15 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了ruby的排序方法发生了什么?脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
‘a’和’b’在以下代码中代表什么,< =>加工?
list = [1,2,3,4,5]
list.sort { |a,b| b <=> a }

#=> [5,1]

解决方法

a和b表示一对项目.它可以是从您的原始列表中删除的任何两个. < =>通常称为宇宙飞船运算符.如果两个项目相等,则返回0,如果左边的值较小则返回-1,如果右边的值较小则返回1.

有更多的信息在the spaceship operator in the Ruby API docs.这是一个Fixnum的文档,因为这是你的例子,但你可以查看浮点,字符串等在那里的定义.

更新:排序函数期望它被给予的块遵循与太空船运算符相同的行为.如果第一个参数,a应先排序,-1应该返回;如果第二个参数,b应该先排序,应该返回1;等等.所以在list.sort {| a,b |的例子中a b}你要告诉排序,第二个参数是每次都更大,因为b对于该列表中的每个可能的组合都大于1.所以当你得到[5,1,2]时,你看到的是基本上是元素传递给块的顺序的工件,并且在Ruby实现中可能不稳定.

总结

以上是脚本之家为你收集整理的ruby的排序方法发生了什么?全部内容,希望文章能够帮你解决ruby的排序方法发生了什么?所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。
标签: