ruby的排序方法发生了什么?
发布时间:2020-12-16 22:31:15 所属栏目:百科 来源:网络整理
导读:‘a’和’b’在以下代码中代表什么, =加工? list = [1,2,3,4,5]list.sort { |a,b| b = a }#= [5,1] 解决方法 a和b表示一对项目.它可以是从您的原始列表中删除的任何两个. =通常称为宇宙飞船运算符.如果两个项目相等,则返回0,如果左边的值较小则返回-1,如果
‘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 – 带重力中心的mini_magick缩略图
- 易想(easethink)团购系统ajax文件导致SQL注入漏洞
- c# – Visual Studio编译器如何将安全属性编译为CIL?
- Advanced XML
- How to change Flash Recovery Area to a new location ? (
- c# – 是否有.NET的功能编程库?
- .net – DataContractJsonSerializer何时包含类型信息?
- Swift:如何实现登录故事板?
- StateButton再也不用根据不同状态写不同的 selector 了
- ruby-on-rails – 灯具是否触发模型回调?