小编ver*_*idd的帖子

Ruby的排序方法如何与组合比较(太空船)运算符一起使用?

在这里开始编程,只是想sort在使用太空船操作员时理解Ruby 方法背后的过程<=>.希望有人能提供帮助.

在下面的:

array = [1, 2, 3]
array.sort { |a, b| a <=> b }
Run Code Online (Sandbox Code Playgroud)

......据我所知,sort在时间比较一对数,然后再返回-1,如果a前所属b,0如果他们是平等的,或者1如果a应该遵循b.

但是在按降序排序的情况下,如下所示:

array.sort { |a, b| b <=> a }
Run Code Online (Sandbox Code Playgroud)

......究竟发生了什么?是否sort仍比较a <=> b,然后翻转,结果呢?或者是解释return-1,01具有相反的行为吗?

换句话说,为什么要将变量放在块中,如下所示:

array.sort { |b, a| b <=> a }
Run Code Online (Sandbox Code Playgroud)

...导致与第一个例子中相同的排序模式?

ruby sorting comparison-operators

6
推荐指数
1
解决办法
5020
查看次数

标签 统计

comparison-operators ×1

ruby ×1

sorting ×1