在这里开始编程,只是想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,0并1具有相反的行为吗?
换句话说,为什么要将变量放在块中,如下所示:
array.sort { |b, a| b <=> a }
Run Code Online (Sandbox Code Playgroud)
...导致与第一个例子中相同的排序模式?