Ruby 有人能解释一下这段代码是如何按升序排序的吗?

Ruby 有人能解释一下这段代码是如何按升序排序的吗?,ruby,arrays,function,sorting,Ruby,Arrays,Function,Sorting,它以升序返回数组/列表,但它是如何工作的 books = ["Charlie and the Chocolate Factory", "War and Peace", "Utopia", "A Brief History of Time", "A Wrinkle in Time"] books.sort! { |firstBook, secondBook| firstBook <=> secondBook } 这是一个很好的问题,答案很简单。块调用spaceship操作符:。许多

它以升序返回数组/列表,但它是如何工作的

books = ["Charlie and the Chocolate Factory", "War and Peace", "Utopia", "A Brief History of Time", "A Wrinkle in Time"]

books.sort! { |firstBook, secondBook| firstBook <=> secondBook }

这是一个很好的问题,答案很简单。块调用spaceship操作符:。许多物体对它作出反应。它返回-1、0或1,具体取决于一个对象是否大于另一个对象

以下是它对字符串的工作方式:

比较返回-1、0、+1或nil,具体取决于字符串是否为空 小于、等于或大于其他字符串

如果字符串长度不同,且字符串相等 当比较到最短长度时,则较长的字符串为 被认为比较短的大

如果您有一个对象与您自己的对象一样不响应spaceship操作符,那么您可以自己定义它

枚举排序著名的算法


ruby默认快速排序实现正在调用您在block firstBook secondBook中提供的比较回调。

可能是ruby,使用排序算法对数组进行排序。看到这一点,就不需要块按升序排序了。书,分类!行。我怀疑这是对“分拣如何工作”问题的回答。我不认为问题是“分拣如何工作”。我想更多的是解释块或者宇宙飞船操作符。我想知道这个代码是如何对数组排序的?