降序排序不适用于组合运算符<=>

时间:2018-11-04 21:34:21

标签: ruby

我有很多水果,我想按降序排序。

fruits = ["orange", "apple", "banana", "pear", "grapes"]

如果我将组合运算符方法与do一起使用,即使我将顺序更改为|a, b|,它也会以升序排序。

print fruits.sort! do |b, a|
    a <=> b
end

但是,如果我将sort!和大括号一起使用,则会得到预期的输出:

print fruits.sort! { |b, a| a <=> b }

输出:

["apple", "banana", "grapes", "orange", "pear"] ["pear", "orange", "grapes", "banana", "apple"]

我正试图了解原因。

谢谢。

0 个答案:

没有答案